您的位置:首页 > 其它

31天重构指南之二十一:合并继承

2009-10-15 14:45 423 查看
今天要说的重构来自于Martin Fowlers的模式目录,你可以在这里找到它。

昨天我们说的“提取子类”重构是指当基类中的一个责任不被所有的子类所需要时,将这些责任提取到合适的子类中。而我们今天所说的“合并继承”重构一般用在当我们觉得不需要子类的时候。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: