合成复用原则CRP: 如果使用继承,会导致父类的的任何变化都可能影响到子类的行为。如果使用对象组合,就降低了这种依赖关系。对于继承和组合,优先使用组合。
如下图所示,中间的猫咪只需要继承黄猫的睡觉方法,若此时采用继承,则导致继承到黄猫父类恐龙的所有方法,增加了代码复杂度。本身只需要添加一个睡觉的方法,却继承了其父类所有的方法。
一般不建议用继承去添加新的类或者添加新的方法。合成复用原则降低了模块与模块间的依赖关系,能用组合和继承都实现的方法,优先使用组合。
执行结果如下:
合成复用原则CRP: 如果使用继承,会导致父类的的任何变化都可能影响到子类的行为。如果使用对象组合,就降低了这种依赖关系。对于继承和组合,优先使用组合。
如下图所示,中间的猫咪只需要继承黄猫的睡觉方法,若此时采用继承,则导致继承到黄猫父类恐龙的所有方法,增加了代码复杂度。本身只需要添加一个睡觉的方法,却继承了其父类所有的方法。
一般不建议用继承去添加新的类或者添加新的方法。合成复用原则降低了模块与模块间的依赖关系,能用组合和继承都实现的方法,优先使用组合。
执行结果如下:
下一篇:go语言设计模式-迪米特法则
(目录) 概念 定义:尽量使用对象组合(contains-A)/聚合(has-A),而不是继承关系达到软件复用的目的 优点:可以使系统更加
1.什么是合成复用原则?原则是尽量使用 组合、聚合、依赖 的方式来完成业务代码的编写,而避免使用继承。(关于UML的部
原则是尽量使用合成/聚合的方式,而不是使用继承。
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M