大话设计模式读书笔记(十七) 桥接模式
来源:互联网 发布:淘宝电动清扫车多少钱 编辑:程序博客网 时间:2024/05/21 19:41
桥接模式
桥接模式(Bridge): 将抽象部分和它的实现部分分离,使他们都可以独立地变化。
桥接模式UMl结构图:
Java代码实现:
Implementor类:
public interface Implementor {public void operation();}
public class ConcreteImplementorA implements Implementor{@Overridepublic void operation() {System.out.println("具体实现的A方法执行");}}public class ConcreteImplementorB implements Implementor{@Overridepublic void operation() {System.out.println("具体实现的B方法执行");}}Abstraction类:
public abstract class Abstraction {private Implementor implementor;public Implementor getImplementor() {return implementor;}public void setImplementor(Implementor implementor) {this.implementor = implementor;}public abstract void operation();}
RefindAbstraction:
public class RefindAbstraction extends Abstraction{@Overridepublic void operation() {getImplementor().operation();}}
public class Main {public static void main(String[] args) {Abstraction ab = new RefindAbstraction();ab.setImplementor(new ConcreteImplementorA());ab.operation();ab.setImplementor(new ConcreteImplementorB());ab.operation();}}
使用场景:
1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换。
2.类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。 这时Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充。
3.对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译。
4.正如在意图一节的第一个类图中所示的那样,有许多类要生成。 这样一种类层次结构说明你必须将一个对象分解成两个部分。
5.你想在多个对象间共享实现(可能使用引用计数),但同时要求客户并不知道这一点。
0 0
- 大话设计模式读书笔记(十七) 桥接模式
- 《大话设计模式》读书笔记
- 【读书笔记】大话设计模式
- 《大话设计模式》读书笔记
- 读书笔记--大话设计模式
- 大话设计模式 读书笔记
- 《大话设计模式》读书笔记
- 大话设计模式读书笔记
- 大话设计模式读书笔记之桥接模式
- 大话设计模式十七:适配器模式(adaptor)
- 《大话设计模式》读书笔记(一)
- 《大话设计模式》读书笔记(一)
- 大话设计模式读书笔记(六)
- 《大话设计模式》 读书笔记(一)
- 《大话设计模式》 读书笔记(二)
- 大话设计模式读书笔记(一)
- 大话设计模式读书笔记(二)
- 大话设计模式读书笔记(零)
- codeforce 785 C.Anton and Fairy Tale(二分)
- 二分查找法
- 1262: 魔法宝石 (“玲珑杯”河南工业大学ACM程序设计大赛)
- 有3行文字,每行有80个字符,分别统计出其中大小写字母,数字,空格以及其他字符个数
- mac和linux系统配置git tab自动补全
- 大话设计模式读书笔记(十七) 桥接模式
- 画出使用分类器得到的决策边界
- 面向接口编程详解
- [BZOJ4551][Tjoi2016&Heoi2016]树(dfs序+线段树)
- 简单工厂模式
- 剑指offer-8.跳台阶
- 关于Python error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27
- ZOJ
- caffe+unbuntu14.04+GPU运行srcnn