常州网站建设报价,自己的网站怎么做的,珠海市企业网络推广,杨小刀网站建设什么是合成/聚合复用原则#xff1f;
合成/聚合复用原则是在一个新的对象里面使用一些已有的对象#xff0c;使之成为新对象的一部分#xff1b;新的对象通过向这些对象的委派达到复用已有功能的目的。
简述为#xff1a;要尽量使用合成/聚合#xff0c;尽量不要使用继承…什么是合成/聚合复用原则
合成/聚合复用原则是在一个新的对象里面使用一些已有的对象使之成为新对象的一部分新的对象通过向这些对象的委派达到复用已有功能的目的。
简述为要尽量使用合成/聚合尽量不要使用继承。
为什么使用合成/聚合复用而不使用继承复用
在面向对象的设计里有两种基本的方法可以在不同的环境中复用已有的设计和实现即通过合成/聚合复用和通过继承复用。两者的特点和区别优点和缺点如下。
1、合成/聚合复用
由于合成或聚合可以将已有对象纳入到新对象中使之成为新对象的一部分因此新对象可以调用已有对象的功能。这样做的好处有
1 新对象存取成分对象的唯一方法是通过成分对象的接口。
2 这种复用是黑箱复用因为成分对象的内部细节是新对象看不见的。
3 这种复用支持包装。
4 这种复用所需的依赖较少。
5 每一个新的类可以将焦点集中到一个任务上。
6 这种复用可以再运行时间内动态进行新对象可以动态地引用与成分对象类型相同的对象。
一般而言如果一个角色得到了更多的责任那么可以使用合成/聚合关系将新的责任委派到合适的对象。当然这种复用也有缺点。最主要的缺点就是通过这种复用建造的系统会有较多的对象需要管理。
2、继承复用
继承复用通过扩展一个已有对象的实现来得到新的功能基类明显的捕获共同的属性和方法而子类通过增加新的属性和方法来扩展超类的实现。继承是类型的复用。
继承复用的优点。
1 新的实现较为容易因为超类的大部分功能可以通过继承关系自动进入子类。
2 修改或扩展继承而来的实现较为容易。
继承复用的缺点。
1 继承复用破坏包装因为继承将超类的实现细节暴露给了子类。因为超类的内部细节常常对子类是透明的因此这种复用是透明的复用又叫“白箱”复用。
2 如果超类的实现改变了那么子类的实现也不得不发生改变。因此当一个基类发生了改变时这种改变会传导到一级又一级的子类使得设计师不得不相应的改变这些子类以适应超类的变化。
3 从超类继承而来的实现是静态的不可能在运行时间内发生变化因此没有足够的灵活性。
由于继承复用有以上的缺点所有尽量使用合成/聚合而不是继承来达到对实现的复用是非常重要的设计原则。