程序员|程序员必会的设计模式七大原则之——合成复用原则

文章图片

文章图片

文章图片

文章图片

文章图片
菜鸟有句话想说:“加不加班的不重要 , 我只是比较喜欢晚上公司门口的路灯 。 ”
今天跟大家分享一下 , 设计模式七大原则中的“合成复用原则” 。 该原则阐述的是 , 我们应该如何复用类 。
讲“合成复用原则”之前先来聊一聊类的“复用” 。 复用类我们可以通过“继承”和“合成”两种方式来实现 。
这两种方式中 , “继承”相信大家都比较了解 , 我们就先看一下继承的优缺点 。
继承的优点:
容易实现并且容易修改和扩展继承来的内容 。继承的缺点:
它最大的缺点就是增加了类之间的依赖 , 当父类发生改变时 , 其子类也会被动发生改变 。 并且子类继承来的实现是静态的 , 在代码编译时期已经定义好的 , 在运行时是不可以发生变化的 。还有就是继承是属于“白箱”复用 , 父类对子类来说是透明的 , 这破坏了类的封装性 。
介于继承存在的这些缺点 , 我们在复用类时 , 要优先考虑使用“合成”进行复用 。
合成复用简介:
1、合成复用原则的核心思想是:在编写代码时如果需要使用其它类 , 那么两个类之间尽量使用合成/聚合的方式 , 而不是使用继承 。合成复用的好处就是解决了使用继承带来的缺点 , 我就不在此进行赘述 。
2、合成复用原则 , 传递的一种设计思路就是:我们可以通过类之间的“合成”来达到“复用”代码的诉求 。
任何事物有好就有坏 , 这是必然的 。 合成复用存在的缺点就是在系统中会存在较多的对象需要管理 。
还有一点需要注意:不是不使用继承 , 而是尽量先考虑使用“合成”复用 , 其次在考虑使用“继承”复用 。
说了这么多“合成复用原则”的理论性知识 , 那到底我们应该怎样应用在代码中呢?请看下面的示例 。
案例:假设有A、B两个类 。 B类需要复用A类的方法 。
通过“合成复用原则”来实现上述案例(不再展示继承复用) 。
方式一:使用简单依赖 。 在B类中添加方法 , 方法入参使用A类 。
使用“简单依赖”的执行结果:
方式二:把A类聚合到B类中 。 在B类中添加属性 , 类型为A类 , 通过set方法进行初始化 。
使用“聚合”的执行结果:
方式三:把A类组合到B类中 。 在B类中添加属性 , 类型为A类 , 并直接new出来 。
使用“组合”的执行结果:
以上就是使用“合成复用原则”的一些基本知识 。 切记合成复用原则向我们传达的设计理念是:优先考虑使用“合成”复用 , 其次在使用“继承” , 并不是不使用“继承” 。 继承也是有其优点的 。
今天的分享就到这里了 , 如果感觉“菜鸟”写的文章还不错 , 记得点赞加关注呦!你们的支持就是我坚持下去的动力 。 文章哪里写的有问题的也希望大家可以指出 , 我会虚心受教 。
【程序员|程序员必会的设计模式七大原则之——合成复用原则】
推荐阅读
- 人间风物志|游雍和宫:有人说这是北京必打卡景点之一,但我并不觉得非去不可
- 星车记|高速行车5大禁忌,必须要记牢,请花30秒通读一遍
- 下达必杀令?大连人再遭生死战,贝尼特斯为保住帅位放弃哈姆西克
- 终于火了!月薪8千必须赶紧买!实拍轩逸
- 美军造船厂罢工一个多月,工人趁势发“国难财”:必须给我加工资
- 美髯公忆|818到来,苏宁易购“史上力度最大的一次购物盛宴”言出必行!
- 集散化小仓库|三人结伴找袁天罡算命,袁天罡:日后必然飞黄腾达!三人走后袁天罡叹气
- 这几天出生的人,命中好运不断,必定富贵齐天!
- 两张图暴巴萨大问题,球队只能忍受梅西一人不防守,苏亚必须走人
- 塑料垃圾|垃圾分类势在必行,来看看塑料垃圾应该何去何从
