最近应用开发的过程中出现了一个小问题,顺便记录一下原因和方法--类模式
一、什么是接桥模式
Bridge 模式又叫做接桥模式,是构造型的计设模式之一。Bridge模式基于类的最小计设准则,通过应用封装,聚合以及继承等行为来让不同的类担承不同的任责。它的要主特点是把抽象(abstraction)与行为实现(implementation)离分开来,从而可以坚持各部分的独立性以及应答它们的能功展扩。
二、接桥模式的结构
三、接桥模式的角色和责职
Client
Bridge模式的应用者
Abstraction
抽象类口接(口接或抽象类)
护维对行为实现(Implementor)的引用
Refined Abstraction
Abstraction子类
Implementor
行为实现类口接 (Abstraction口接定义了基于Implementor口接的更高次层的作操)
ConcreteImplementor
Implementor子类
代码实现:
Implementor类:
package com.qianyan.bridge; public interface Engine { /** * 安装动员引擎 */ public void installEngine(); }
ConcreteImplementor类:
package com.qianyan.bridge; public class Engine2000 implements Engine { @Override public void installEngine() { System.out.println("安装2000CC动员引擎"); } }
package com.qianyan.bridge; public class Engine2200 implements Engine { @Override public void installEngine() { System.out.println("安装2200CC动员引擎"); } }
Abstraction类:
package com.qianyan.bridge; public abstract class Car { private Engine engine; public Car(Engine engine) { this.engine = engine; } public Engine getEngine() { return engine; } public void setEngine(Engine engine) { this.engine = engine; } public abstract void installEngine(); }
Refined Abstraction类:
package com.qianyan.bridge; public class Bus extends Car { public Bus(Engine engine) { super(engine); } @Override public void installEngine() { System.out.print("Bus:"); this.getEngine().installEngine(); } }
package com.qianyan.bridge; public class Jeep extends Car { public Jeep(Engine engine) { super(engine); } @Override public void installEngine() { System.out.print("Jeep:"); this.getEngine().installEngine(); } }
Client类:
package com.qianyan.bridge; public class MainClass { public static void main(String[] args) { Engine engine2000 = new Engine2000(); Engine engine2200 = new Engine2200(); Car bus = new Bus(engine2000); bus.installEngine(); Car jeep = new Jeep(engine2200); jeep.installEngine(); } }
Result:
Bus:安装2000CC动员引擎 Jeep:安装2200CC动员引擎
文章结束给大家分享下程序员的一些笑话语录: 问路
有一个驾驶热气球的人发现他迷路了。他降低了飞行的高度,并认出了地面 上的一个人。他继续下降高度并对着那个人大叫,“打扰一下,你能告诉我我 在哪吗?”
下面那个人说:“是的。你在热气球里啊,盘旋在 30 英尺的空中”。
热气球上的人说:“你一定是在 IT 部门做技术工作”。
“没错”,地面上的人说到,“你是怎么知道的?”
“呵呵”,热气球上的人说,“你告诉我的每件事在技术上都是对的,但对都没 有用”。
地面上的人说,“你一定是管理层的人”。
“没错”,热气球上的人说,“可是你是怎么知道的?”
“呵呵”,地面上的那人说到,“你不知道你在哪里,你也不知道你要去哪,你 总希望我能帮你。你现在和我们刚见面时还在原来那个地方,但现在却是我 错了”。