组合/聚合复用原则(Composite/Aggregate Reuse Principle)是面向对象设计原则的一种。组合/聚合复用原则是指尽量使用组合/聚合,不要使用类继承。在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象的委派达到复用已有功能的目的。就是说要尽量的使用合成和聚合,而不是继承关系达到复用的目的。
组合/聚合复用原则是什么
- 尽量采用组合(contains-a)、聚合(has-a)的方式而不是继承(is-a)的关系来达到软件的复用目的
假如新对象的一些功能在其他已经创建好的对象里面已经实现,那么应该尽可能使用其他对象提供的功能,使之成为新对象的一部分,而不要再重新创建。
组合/聚合的优点:类相互间的耦合度比较低,一个类的变动对别的类造成的影响较为少,组合/聚合的缺点:类的数量增多实现起来较为复杂
组合/聚合复用原则好处
- 可以降低类与类之间的耦合程度
- 提高了系统的灵活性
组合/聚合复用原则例子
public void talk(String name) { System.out.println(name + " say hello"); } public void walk(String name) { System.out.println(name + " move"); } } public class Manager extends Person { } public class Employee extends Person { }
根据组合/聚合复用原则大家需要首选组合,然后才能是继承,使用继承时需要严格的遵守里氏替换原则,务必满足“Is-A”的关系是才可以使用继承,而组合却是一种“Has-A”的关系。
由上面的代码能够看出,Manager和Employee继承了Person,但实际上每一个不同的职位具有不同的角色,如果大家填加了角色这个类,那麼继续使用继承的话只能使每个人只能具有一种角色,这显然是不科学的。
原文地址:https://www.cnblogs.com/numpycomcn/p/11785139.html
时间: 2024-11-09 02:12:57