java设计模式_桥接模式
来源:互联网 发布:网络主播行业调查分析 编辑:程序博客网 时间:2024/05/18 22:56
一、什么是桥接模式
Bridge 模式又叫做桥接模式,是构造型的设 计模式之一。Bridge模式基于类的最小设计原则,通过 使用封装,聚合以及继承等行为来让不同的类承担不同 的责任。它的主要特点是把抽象(abstraction)与行为
实现(implementation)分离开来,从而可以保持各部 分的独立性以及应对它们的功能扩展。
二、桥接模式的结构
三、桥接模式的角色和职责
Client
Bridge模式的使用者 Abstraction
抽象类接口(接口或抽象类)
维护对行为实现(Implementor)的引用 Refined Abstraction
Abstraction子类 Implementor
行为实现类接口 (Abstraction接口定义了基于Implementor接口的更高层次的操作) ConcreteImplementor
Implementor子类
//示例1:/* * 汽车 */public interface Car { void installEngine();}public abstract class Bus implements Car { @Override public abstract void installEngine();}public class Bus2000 extends Bus { @Override public void installEngine() { System.out.println("bus安装2000cc发动机"); }}public class Bus2200 extends Bus { @Override public void installEngine() { System.out.println("bus安装2200cc发动机"); }}public abstract class Jeep implements Car { @Override public abstract void installEngine() ;}public class Jeep2000 extends Jeep { @Override public void installEngine() { System.out.println("jeep安装2000cc发动机"); }}public class Jeep2200 extends Jeep { @Override public void installEngine() { System.out.println("jeep安装2200cc发动机"); }}public class MainClass { public static void main(String[] args) { Car car1 = new Bus2000(); car1.installEngine(); }}//bus安装2000cc发动机//示例2:/* * 汽车 */public interface Car { void install2000Engine(); void install2200Engine(); void install2300Engine();}public class Bus implements Car { @Override public void install2000Engine() { System.out.println("bus安装2000发动机"); } @Override public void install2200Engine() { System.out.println("bus安装2200发动机"); } @Override public void install2300Engine() { System.out.println("bus安装2300发动机"); }}public class MainClass { public static void main(String[] args) { Car car1 = new Bus(); car1.install2000Engine(); }}//bus安装2000发动机//示例3:public interface Engine { void installEngine();}public class Engine2000 implements Engine { @Override public void installEngine() { System.out.println("安装2000发动机"); }}public class Engine2200 implements Engine { @Override public void installEngine() { System.out.println("安装2200发动机"); }}public abstract class Car { protected Engine engine; public Car(Engine engine) { this.engine = engine; } public abstract void installEngine();}public class Bus extends Car { public Bus(Engine engine) { super(engine); } @Override public void installEngine() { System.out.print("bus汽车安装:" ); engine.installEngine(); }}public class Jeep extends Car { public Jeep(Engine engine) { super(engine); } @Override public void installEngine() { System.out.print("jeep汽车安装:" ); engine.installEngine(); }}public class MainClass { public static void main(String[] args) { Engine engine2000 = new Engine2000(); Engine engine2200 = new Engine2200(); Car bus1 = new Bus(engine2000); bus1.installEngine(); Car bus2 = new Bus(engine2200); bus2.installEngine(); Car jeep1 = new Jeep(engine2000); jeep1.installEngine(); Car jeep2 = new Jeep(engine2000); jeep2.installEngine(); }}//bus汽车安装:安装2000发动机//bus汽车安装:安装2200发动机//jeep汽车安装:安装2000发动机//jeep汽车安装:安装2000发动机
0 0
- java设计模式_桥接模式
- Java设计模式_(结构型)_桥接模式
- java设计模式08_桥接模式
- Java设计模式_结构型_桥接模式_以不变应万变
- 大话设计模式_桥接模式
- 设计模式_桥接模式(C++)
- 设计模式_桥接模式
- 设计模式06_桥接模式
- 设计模式_桥接模式
- 设计模式_桥接模式(13)
- 转载_设计模式_桥接模式
- Java设计模式_创建模式_原型模式
- Java设计模式_创建模式_工厂模式
- Java设计模式_创建模式_生成器模式
- Java设计模式_行为模式_观察者模式
- Java设计模式_描述
- java设计模式_观察者模式
- java设计模式_命令模式
- 练习场acm 题目663 弟弟的作业
- NOI2016游记
- 杭电 1002-大数相加
- 内部类访问局部变量的时候,为什么变量必须加上final修饰
- Android代码命名规范
- java设计模式_桥接模式
- 牛客网做题学到的知识(一)
- 【嵌入式开发】用 VLC 显示 树莓派摄像头 H264 裸流
- 网络参考模型与TCP/IP协议
- Web即时通讯学习(一)
- 【英语总结】七月
- 解决GridLayout API level小于21时平均分配行列的问题
- HHU 暑假第二弹 数据结构初步
- 棋盘问题