༺༽༾ཊ—设计-七个-05-原则-模式—ཏ༿༼༻

第五原则:里氏替换原则

        所有基类出现的地方必定能被子类替换,且功能不发生影响

例子:构造函数中参数基类出现的地方

在主类中可以被子类替换,且不改变功能

我们在编写代码时要带有里氏替换原则的思想编写,考虑子类在继承基类时后期可不可以完全替换基类且不改变功能的要求,

也就是每次使用继承时,想想到底该不该继承,

虽然我们有override重写方法,就算继承了也可以使用override选择实不实现功能,但是会造成代码污染,比如:

我们扩展一个Brush(笔刷类) 继承 Graohics(画图工具),在基类方法是 virtual类型时 ,使用override可以选择子类是否实现

再扩展一个油漆桶类,考虑到油漆桶没有描边功能,可以用override不进行代码编写,但这样就出现了代码污染,

所以我们可以考虑不使用继承,也就不会出现 空重写 的代码污染,

空重写的出现即使我们使用了该函数也不会有什么作用,所以属于代码污染,

再不使用继承时,我们可以把 油漆桶 和 笔刷 功能放在 画图工具类里,让工具类Graphics拥有 油漆桶 和 笔刷 这两个功能

也就是说应该:

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值