博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
31天重构学习笔记17. 提取父类
阅读量:7123 次
发布时间:2019-06-28

本文共 796 字,大约阅读时间需要 2 分钟。

概念:本文中的“提取父类”是指类中有一些字段或方法,你想把它们提取到父类中以便同一继承层次的其它类也可以访问他们,这个和之前的很多重构有异曲同工之处。

 

正文:Dog 类中的EatFood和Groom有可能被其他类用到,因为他们都是动物的一些公有性质,所以这个时候我们就会考虑对它进行提炼。

namespace LosTechies.DaysOfRefactoring.ExtractSuperclass.Before {
public class Dog {
public void EatFood() {
// eat some food }

 

public void Groom()

{
// perform grooming
}
}
}

代码如下所示,提取了Animal 方法来封装公用的EatFood和Groom类,从而使其他继承了Animal 类的子类都可以使用这两个方法了。

namespace LosTechies.DaysOfRefactoring.ExtractSuperclass.After {
public class Animal {
public void EatFood() {
// eat some food } public void Groom() {
// perform grooming } } public class Dog : Animal {
} }

总结:这个重构是典型的继承用法,很多程序员都会选择这样做,但是要注意正确的使用,不要造成过度使用了继承,如果过度使用了,请考虑用接口、组合和聚合来实现。

转载于:https://www.cnblogs.com/ywsoftware/archive/2013/02/05/2892603.html

你可能感兴趣的文章
【人生】不管你挣多少, 钱永远是问题
查看>>
DG备库无法接受主库归档日志之密码文件
查看>>
[bzoj 2555]Substring
查看>>
tab标签
查看>>
ecshop新增银联企业网银支付方式
查看>>
Angular5学习笔记 - 配置NG-ZORRO(八)
查看>>
使用Netty实现HTTP服务器
查看>>
JAVA开发工具eclipse中@author怎么改
查看>>
存储引擎与锁
查看>>
sqlog连接虚拟机mysql服务
查看>>
出错,网页显示不出内容
查看>>
Spring中的后置处理器BeanPostProcessor讲解
查看>>
《FPGA全程进阶---实战演练》第十四章 蜂鸣器操作
查看>>
浅析firmware完整生存和使用流程 【转】
查看>>
《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!【转】
查看>>
MMU介绍【转】
查看>>
构造函数
查看>>
HTML 5 History API的”前生今世”
查看>>
电脑高手常用快捷键
查看>>
杨辉三角形
查看>>