多用组合少用继承
2022-08-01 15:46:58 22 举报
AI智能生成
如何使用组合模式替代继承
作者其他创作
大纲/内容
继承存在的问题
继承爆炸
如何体现
鸟类
会飞的鸟类、不会飞的鸟类
会叫会飞的鸟类,不会叫会飞的鸟类,会叫不会飞的鸟类,不会叫不会飞的鸟类
会下蛋的。。。。
组合模式
定义接口
会飞、会叫、会下单
实现类
鸟类实现相应的接口即可
如果实现类太多,一些接口都是默认实现,可以提供一个默认实现类,再采用委托的形式即可
继承的使用场景
类之间的继承结构稳定(不会轻易改变),继承层次比较浅(比如,最多有两层继承关系),继承关系不复杂,
有些固定的模式,比如模板方法模式、基于继承的适配器模式
组合的使用场景
避免继承爆炸,可以采用组合
固定的模式
装饰者模式(decorator pattern)
策略模式(strategy pattern)
组合模式(composite pattern)
有的时候,从业务含义上,A 类和 B 类并不一定具有继承关系。抽象出一个共同的父类也不行,这种情况下也可以采用组合
0 条评论
下一页