合成复用原则(Composite Reuse Principle)
合成复用原则(Composite Reuse Principle)
1 、基本介绍
原则是尽量使用合成/聚合的方式,而不是使用继承
idea中UML代码:
@startuml
class A{
void operation1();
void operation2();
void operation3();
}
note left: 如果我们只是让B类去使用A类方法,\n使用继承就会让B和A的耦合性增强
class B
A <|-- B
class A1{
void operation1();
void operation2();
void operation3();
}
class B1{
void operation1(A:a);
}
A1 <.. B1
class A2{
void operation1();
void operation2();
void operation3();
}
class B2{
A a;
void setA(a:A);
}
A2 --o B2
class A3{
void operation1();
void operation2();
void operation3();
}
class B3{
A a = new A();
}
A3 --* B3
@enduml
类图:
2、 设计原则核心思想
-
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代 码混在一起。
-
针对接口编程,而不是针对实现编程。
-
为了交互对象之间的松耦合设计而努力