Java设计模式(13)——结构型模式之桥梁模式(Bridge)
2017-10-30 12:15
489 查看
一、概述
概念将抽象与实现脱耦,使得抽象和实现可以独立运行
UML图
角色:
角色关系
二、实践
按照上面的角色建立相应的类抽象化角色
/** * 抽象化角色 * * @author Administrator **/ public abstract class Abstraction { protected Implenmentor impl; public void operation() { impl.operationImpl(); } }
修正抽象角色
/** * 修正抽象角色 * * @author Administrator **/ public class RefinedAbstraction extends Abstraction{ @Override public void operation() { // 修正逻辑 System.out.println("修正抽象角色"); } }
实现化角色(接口形式)
/** * 实现化角色 * * @author Administrator **/ public abstract class Implenmentor { public abstract void operationImpl(); }
具体实现化角色(只给出一个示例,可以有多个具体实现)
/** * 具体实现角色 * * @author Administrator **/ public class ConcreteImplenmentor extends Implenmentor{ @Override public void operationImpl() { // 子类重写逻辑 System.out.println("具体实现子类"); } }
有了以上抽象角色的示例,我们再来看看《Java与模式》中的飞机制造的具体例子:
引入问题
常规思路如下:
联系最基本的检验原则,检查设计的问题
联系本节桥梁模式,做出改进
抽象角色
/** * 飞机类抽象接口 * * @author Administrator **/ public abstract class Airplane { protected AirplaneMaker airplaneMaker; public abstract void fly(); }
修正角色
/** * 载客飞机,作为飞机的修正角色 * * @author Administrator **/ public class PassengerAirplane extends Airplane{ @Override public void fly() { // 修正逻辑 System.out.println("修正角色"); } }
/** * 载货飞机,作为飞机的修正角色 * * @author Administrator **/ public class CargoPlane extends Airplane{ @Override public void fly() { // 修正逻辑 System.out.println("修正角色"); } }
实现化角色
/** * 飞机制造商接口 * * @author Administrator **/ public abstract class AirplaneMaker { public abstract void produce(); }
具体实现化角色(此处省略另外的相似的角色)
/** * 具体实现角色 * * @author Administrator **/ public class Airbus extends AirplaneMaker{ @Override public void produce() { // 具体实现逻辑 System.out.println("具体实现角色"); } }
当然,可以参考更多的例子,参见:http://www.cnblogs.com/forlina/archive/2011/06/22/2087350.html
http://www.cnblogs.com/Coda/p/4289593.html
以上的例子都不要拘泥于形式,注意从UML图理解
三、改进与思考
使用场景当一个类的子类需要扩展时,如果要在两个维度进行扩展,那么就可以使用Bridge模式。
相关文章推荐
- java设计模式(8):桥梁模式(Bridge)
- "围观"设计模式(15)--结构型之桥梁模式(Bridge Pattern)
- 设计模式13:Bridge Pattern (桥梁模式)
- java 设计模式--桥梁模式(Bridge)
- Java常用的设计模式13:常用设计模式之桥接模式(结构型模式)
- java设计模式之桥梁模式(Bridge)
- Java经典设计模式-结构型模式-桥接模式(Bridge)
- Java设计模式之结构型模式-桥接模式(Bridge)
- Java设计模式--桥梁模式【Bridge Pattern】
- 【结构型模式】桥接模式(Bridge)之23种java设计模式
- 设计模式(3)-结构型-桥接模式(Bridge)
- java结构型设计模式——外观模式
- Java设计模式之桥接模式(Bridge)
- java 设计模式-结构模式之桥梁模式
- java设计模式(结构型)之桥接模式
- 学习php设计模式 php实现桥梁模式(bridge)
- Java经典设计模式之七大结构型模式(附实例和详解)
- java设计模式之结构型模式-代理模式
- 设计模式C++之十一(Bridge桥梁模式)
- 设计模式13——结构型模式之代理模式