您的位置:首页 > 其它

大话设计模式之桥接模式

2013-08-13 16:13 246 查看
合成/聚合复用原则,尽量使用合成/聚合,尽量不要使用类继承。聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分;合成则是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。大雁和翅膀是合成,大雁和雁群是聚合。

优先使用对象的合成/聚合将有助于保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物。

桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。抽象类和它的派生类用来实现自己的对象



package Bridge;

public class MainClass {

public static void main(String[] args) {
// TODO Auto-generated method stub
Abstraction ab = new RefinedAbstraction();

ab.setImplementor(new ConcreteImplementorA());
ab.Operation();

ab.setImplementor(new ConcreteImplementorB());
ab.Operation();
}

}

abstract class Implementor {
public abstract void Operation();
}

class ConcreteImplementorA extends Implementor {

@Override
public void Operation() {
// TODO Auto-generated method stub
System.out.println("具体实现A的方法执行");
}

}

class ConcreteImplementorB extends Implementor {

@Override
public void Operation() {
// TODO Auto-generated method stub
System.out.println("具体实现B的方法执行");
}
}

class Abstraction {
protected Implementor implementor;

public void setImplementor(Implementor implementor) {
this.implementor = implementor;
}

protected void Operation() {
implementor.Operation();
}
}

class RefinedAbstraction extends Abstraction {

@Override
protected void Operation() {
// TODO Auto-generated method stub
implementor.Operation();
}
}
简言之有两种类型的抽象类,一个持有另外一个对象,这样可以对这两个抽象类的实例进行组合
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: