重构第21天 合并继承 (Collapse Hierarchy)

理解本文中的”合并继承”是指如果子类的属性和方法也适合于基类,那么就可以移除子类,从而减少依赖关系。

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

       

 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     }

 

这篇和上篇其实最主要论述了子类和父类的继承关系以及如何判断什么时候需要使用继承,一般我们都能处理好这些关系,所以相对比较简单。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值