组合优于继承

继承很强大,然而会破坏封装性,因而是有问题的。继承有时很脆弱。

继承缺点:

子类需要很好的了解父类细节,避免出错, 耦合性强。

继承优点:

差不多就是组合的缺点吧。

最著名例子:JpaRepository, 用户继承这个类,即可具备很多默认查询方法。

其次可以用来代替TAG class。比如一个Rectangle类,根据一个标识,既可以用来表示矩形,又可表示圆形,这就是一个TAG class。 这样设计会比较凌乱,就不如设计一个抽象类,另外定义矩形类和圆形类去继承这个父类。除了凌乱外,TAG类的成员变量无法为final,也是不利之处。因为有冗余变量,故而占用内存也大。

组合的缺点:

门面模式时,需要写很多啰嗦的调用原对象接口代码。

组合的优点:

若父类API设计的不好,可以重新设计API。

使用继承时候注意事项,如何更好使用继承。

写注释,记录哪些方法会调用子类覆盖的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值