31天重构指南之二十一:合并继承
2009-10-15 14:45
423 查看
今天要说的重构来自于Martin Fowlers的模式目录,你可以在这里找到它。
昨天我们说的“提取子类”重构是指当基类中的一个责任不被所有的子类所需要时,将这些责任提取到合适的子类中。而我们今天所说的“合并继承”重构一般用在当我们觉得不需要子类的时候。
原文链接:http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/21/refactoring-day-21-collapse-hierarchy.aspx
昨天我们说的“提取子类”重构是指当基类中的一个责任不被所有的子类所需要时,将这些责任提取到合适的子类中。而我们今天所说的“合并继承”重构一般用在当我们觉得不需要子类的时候。
1: public class Website
2: {
3: public string Title { get; set; }
4: public string Description { get; set; }
5: public IEnumerable<Webpage> Pages { get; set; }
6: }
7:
8: public class StudentWebsite : Website
9: {
10: public bool IsActive { get; set; }
11: }
上面的代码中StudentWebSite子类除了有一个属性用来说明网站是否是活动的外没有别的责任,在这种情形下我们意识到IsActive属性可以应用到所有的
网站,所以我们可以将IsActive属性上移到基类中,并去掉StudentWebSite类。
1: public class Website
2: {
3: public string Title { get; set; }
4: public string Description { get; set; }
5: public IEnumerable<Webpage> Pages { get; set; }
6: public bool IsActive { get; set; }
7: }
原文链接:http://www.lostechies.com/blogs/sean_chambers/archive/2009/08/21/refactoring-day-21-collapse-hierarchy.aspx
相关文章推荐
- 31天重构学习笔记21. 合并继承
- 31天重构学习笔记21. 合并继承
- 31天重构学习笔记21. 合并继承
- 31天重构学习笔记21. 合并继承
- 31天重构学习笔记21. 合并继承
- 31天重构指南之八:用委派代替继承
- 31天重构指南之三十一:使用多态代码条件判断
- 31天重构指南之十:提取方法
- 31天重构指南之二十三:引入参数对象
- 31 天重构学习笔记21. 合并继承
- 31天重构指南之十一:使用策略类
- 31天重构指南之五:提升字段
- 31天重构指南之十三:提取方法对象
- 31天重构指南之十六:封装条件
- 31天重构指南之十八:使用条件判断代替异常
- 31天重构指南之十九:提取工厂类
- 重构第21天 合并继承 (Collapse Hierarchy)
- 31天重构指南
- 《31天重构》8:以委托取代继承
- 31天重构指南之二十七:去除上帝类