合成复用原则~

简介: 合成复用原则~

合成复用原则是面向对象设计中的一个原则,该原则的提出就是为了复用已有的设计和实现,而在面向对象设计中,可以通过两种基本方法达到该目的,即通过组合/聚合关系或通过继承,本原则是通过组合/聚合关系,即为在一个新的对象里通过组合关系和聚合关系 来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用其已有功能的目的,之所以不推荐继承是因为它破坏系统的封装性,假设B是A的子类,B去继承A,那么就知道了A的属性与行为;因此当A发生改变后B 也要改变,父类发生改变,子类受到牵连,同时也增加了二者之间的耦合度,并且从基类继承而来的实现是静态的,不能在运行时发生改变,没有足够的灵活性;只能在有限的环境中使用。


举例:


Animal是父类,Dog是子类,为了实现对Animal类中代码的复用,由此通过创建Animal对象,使用创建的animal类的对象调用Animal类中的方法,避免了在Dog类中重复实现eat()方法,这种方式是通过组合而不是继承

package druidResources;
class Animal {// 父类
    public void eat() {
        System.out.println("Animal is eating");
    }
}
// 子类
class Dog{
   private Animal animal;
    public Dog() {
    //创建Animal类的对象实现代码的复用
        this.animal = new Animal();
    }
    public void eat() {
        animal.eat();
    }
}
// 测试类
public class CompositeReusePrincipleTest {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.eat();
    }
}

输出:

Animal is eating
相关文章
|
5月前
软件复用问题之衡量是否应该复制或复用代码,如何解决
软件复用问题之衡量是否应该复制或复用代码,如何解决
|
5月前
软件复用问题之复用性风险是如何定义的
软件复用问题之复用性风险是如何定义的
|
5月前
软件复用问题之提升组织的复用ROI,如何解决
软件复用问题之提升组织的复用ROI,如何解决
|
5月前
|
设计模式 算法 开发者
软件复用问题之区分「不重复」和「复用」,如何解决
「不重复」和「复用」之间有何区别软件复用问题之区分「不重复」和「复用」,如何解决
软件设计原则-合成复用原则讲解以及代码示例
合成复用原则(Composition/Aggregation Reuse Principle,CARP)是面向对象设计的一种重要原则,也被称为组合/聚合复用原则。它强调通过组合(Composition)或聚合(Aggregation)关系来达到代码复用的目的,而不是通过继承关系。
207 0
|
设计模式 Java
Java设计模式七大原则-合成聚合复用原则
Java设计模式七大原则-合成聚合复用原则
99 0
|
设计模式 Oracle 关系型数据库
七大设计原则之合成复用原则应用
七大设计原则之合成复用原则应用
160 0
|
设计模式 Oracle 关系型数据库
软件架构设计原则之合成复用原则
合成复用原则(Composite/Aggregate Reuse Principle,CARP)是指尽量使用对象组合(has-a)/聚合(contanis-a)而不是继承关系达到软件复用的目的。可以使系统更加灵活,降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少。
115 0
|
设计模式
设计模式(7) -- 合成复用原则和七大原则总结
设计模式(7) -- 合成复用原则和七大原则总结
139 0
设计模式(7) -- 合成复用原则和七大原则总结
|
设计模式 uml
设计模式七大原则——合成复用原则
设计模式七大原则——合成复用原则
设计模式七大原则——合成复用原则