合成/聚合复用原则:
尽量使用合成、聚合,尽量不要使用类继承
合成和聚合都是关联的 特殊种类,聚合表示 一种弱地“拥有”关系,体现地是
A对象可以包含B对象,但B对象不是A对象地一部分,合成则是一种 强地“拥有”
关系,体现了严格地部分和整体地关系,部分和整体地生命周期一样。
合成、聚合复用原则地好处是:优先使用对象地、合成/聚合将有助于你保持每个类
被封装,并 被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能
增长为不可控地庞然大物。
桥接模式:将抽象部分与它地实现部分分离,使他们都可以独立地变化。
如何理解:什么叫抽象与它地实现分离,这并不是说,让抽象类与派生类分离,
因为没有任何意义,实现指的是 抽象类和它地派生类用来实现自己地对象。
再次理解:实现系统可能有多角度分类,每一种分类都有可能变化,那么就
把这种多角度分离出来让他们独立变化,减少他们之间地耦合。
让我们来看到底什么是桥接模式:
abstract class Implementor {
public abstract void operation();
}
public class ConcreteImplementorA extends Implementor{
@Override
public void operation() {
// TODO Auto-generated method stub
System.out.println("具体A的方法执行");
}
}
public class ConcreteImplementorB extends Implementor{
@Override
public void operation() {
// TODO Auto-generated method stub
System.out.println("具体B的方法执行");
}
}
public class Abstration {
protected Implementor implementor;
public void setImplementor(Implementor implementor) {
this.implementor = implementor;
}
public void operation() {
// TODO Auto-generated method stub
implementor.operation();
}
}
public class RefinedAbstration extends Abstration{
public void operation() {
// TODO Auto-generated method stub
implementor.operation();
}
}
public class Test1 {
public static void main(String[] args) {
Abstration refinedAbstration = new RefinedAbstration();
refinedAbstration.setImplementor(new ConcreteImplementorA());
refinedAbstration.operation();
refinedAbstration.setImplementor(new ConcreteImplementorB());
refinedAbstration.operation();
}
}