桥接模式
来源:互联网 发布:如何申请开淘宝网店 编辑:程序博客网 时间:2024/06/08 04:53
概述:
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。
意图:
将抽象部分与实现部分分离,使它们都可以独立的变化。
public abstract void operation();
}
@Override
public void operation() {
System.out.println("具体实现A的方法执行");
}
}
@Override
public void operation() {
System.out.println("具体实现B的方法执行");
}
}
protected Implementor implementor;
public void setImplementor(Implementor implementor) {
this.implementor = implementor;
}
public void operation(){
implementor.operation();
}
}
@Override
public void operation() {
implementor.operation();
}
}
Abstraction ab = new RefinedAbstraction();
ab.setImplementor(new ConcreteImplementA());
ab.operation();
ab.setImplementor(new ConcreteImplementB());
ab.operation();
}
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。
意图:
将抽象部分与实现部分分离,使它们都可以独立的变化。
——《设计模式》GOF
我的理解就是实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分类分离出来让他们独立变化,减少他们之间的耦合。
结构图:
public abstract void operation();
}
@Override
public void operation() {
System.out.println("具体实现A的方法执行");
}
}
@Override
public void operation() {
System.out.println("具体实现B的方法执行");
}
}
protected Implementor implementor;
public void setImplementor(Implementor implementor) {
this.implementor = implementor;
}
public void operation(){
implementor.operation();
}
}
@Override
public void operation() {
implementor.operation();
}
}
Abstraction ab = new RefinedAbstraction();
ab.setImplementor(new ConcreteImplementA());
ab.operation();
ab.setImplementor(new ConcreteImplementB());
ab.operation();
}
0 0
- 设计模式:适配器模式,桥接模式
- 设计模式----桥接模式
- 设计模式---桥接模式
- 结构性模式-桥接模式
- 设计模式:桥接模式
- 设计模式 桥接模式
- 设计模式 - 桥接模式
- 设计模式--桥接模式
- 设计模式--桥接模式
- 设计模式 - 桥接模式
- 设计模式-桥接模式
- 设计模式 - 桥接模式
- 设计模式 - 桥接模式
- 【设计模式-桥接模式】
- 设计模式:桥接模式
- 【设计模式】----桥接模式
- 【设计模式】桥接模式
- 设计模式--桥接模式
- 大数处理,带大数开根号
- Building a Module
- Javascript闭包的几种写法及用途
- java使用mongodb
- JavaWeb 中调用vlcj总是找不到.dll文件
- 桥接模式
- 一个ppp帧的数据部分(用十六进制写出)是7D 5E FE 27 7D 5D 7D 5D 65 7D 5E。
- Sine之舞
- EXCEL中VLOOKUP函数的使用
- Python学习笔记(2)-开发环境配置
- directshow入门
- 近似回文词
- 【更新于9.23】深度学习论文汇总
- Win10 与 Ubuntu 16.04下 MySQL 5.7.17的主从复制