设计模式(10)-桥接模式(Bridge)
来源:互联网 发布:怎样查农村淘宝服务站 编辑:程序博客网 时间:2024/06/05 09:06
当实现一个操作,有抽象和实现的叠加时,用桥模式可以比较好的解决。
比如飞机分为:客机,货机,空中客车,波音
客机,货机就是一种抽象,airbus, bocing就是一种实现,两者之间有叠加,有一种排列组合的关系。如果不用设计模式进行结构的设计,代码可能就会很混乱。下面给出一个演示的例子。
抽象接口Plane
package org.bluebea.gof.bridge;
public abstract class Plane {
protected PlaneMaker planeMaker;
public Plane() {
this.planeMaker = PlaneMakerSingle.getPlaneMaker();
}
public abstract void fly();
}
说明:抽象接口中有一个实现接口对象的实现,以保证两个接口发生关系。
可以在构造抽象接口实现时,放入实现对象。但以后的子类在构造时都会有这种操作。
实现接口PlaneMaker
package org.bluebea.gof.bridge;
public abstract class PlaneMaker {
public abstract void make();
}
抽象实现PassengerPlane
package org.bluebea.gof.bridge;
public class PassengerPlane extends Plane {
public PassengerPlane() {
}
public void fly() {
planeMaker.make();
System.out.println("-- " + "PassengerPlane fly.");
}
}
抽象实现CargoPlane
package org.bluebea.gof.bridge;
public class CargoPlane extends Plane {
public CargoPlane() {
}
public void fly() {
planeMaker.make();
System.out.println("-- " + "CargoPlane fly.");
}
}
实现接口实现Bocing
package org.bluebea.gof.bridge;
public class Bocing extends PlaneMaker {
public Bocing() {
}
public void make() {
System.out.print("-- " + "Bocing");
}
}
实现接口实现Airbus
package org.bluebea.gof.bridge;
public class Airbus extends PlaneMaker {
public Airbus() {
}
public void make() {
System.out.print("-- " + "Airbus");
}
}
取得实现对象的单态类
package org.bluebea.gof.bridge;
public class PlaneMakerSingle {
private static PlaneMaker planeMaker;
public PlaneMakerSingle(PlaneMaker pm) {
planeMaker = pm;
}
public static PlaneMaker getPlaneMaker() {
return planeMaker;
}
}
- 设计模式(10)-桥接模式(Bridge)
- 桥接设计模式bridge
- 设计模式 Bridge 桥接模式
- Java设计模式-----Bridge桥接模式
- 设计模式--桥接模式(Bridge)
- 设计模式(12)-桥接模式(Bridge)
- 设计模式-----桥接模式(Bridge Pattern)
- 设计模式学习----Bridge桥接模式
- 设计模式之-Bridge-- 桥接模式
- 设计模式 – 桥接模式(Bridge)
- 设计模式之Bridge(桥接模式)
- 设计模式--桥接模式(bridge pattern)
- Java设计模式-----Bridge桥接模式
- 设计模式之Bridge(桥接模式)
- 设计模式-----桥接模式(Bridge Pattern)
- 设计模式-----桥接模式(Bridge Pattern)
- 设计模式7 - 桥接模式Bridge
- [设计模式]Bridge桥接模式
- 设计模式(6)-代理模式(Proxy)
- 设计模式(9)-装饰模式(Decorator)
- 设计模式(7)-适配器模式(Adapter)
- 防SQL注入
- 设计模式(8)-组合模式(Composite)
- 设计模式(10)-桥接模式(Bridge)
- (转宝贝记).net 框架设计 签名系统三层架构
- linux配置-磁盘
- 设计模式(12)-模板方法模式(Template Method)
- 设计模式(11)-单例模式(Flyweight)
- .Net/C# 实现 中国移动 CMPP v3.0 ISMG SP 收发短信的 SP 客户端 (第2版) (CMPP SP Client)
- 设计模式(15)-职责链模式(Chain of Responsibility)
- linux网络服务-http
- .Net/C# 封装磁盘目录文件搜索功能的工具类 (实现了与搜索相关的事件,以便插入客户处理代码)