java设计模式之桥接模式
来源:互联网 发布:2017北京程序员工资 编辑:程序博客网 时间:2024/06/05 19:34
java设计模式参考文章:
Java设计模式实战,23种设计模式介绍以及在Java中的实现,Java设计模式, Java经典设计模式之五大创建型模式
## 定义 ##
业务场景参考这篇文章
将抽象部分与它的实现部分分离,使它们都可以独立的变化。
## 代码举例 ##
/** * @author bwx * @date 2017/11/28 * 品牌抽象接口 */public interface Brand { String brand();}/** * @author bwx * @date 2017/11/28 */public class Dell implements Brand { public String brand() { return "戴尔"; }}/** * @author bwx * @date 2017/11/28 */public class Lenovo implements Brand { public String brand() { return "联想"; }}/** * @author bwx * @date 2017/11/28 * 类型抽象类 */public abstract class Computer { private Brand brand; public Computer(Brand brand) { this.brand = brand; } public abstract String type(); public void sale() { System.out.println("我们卖的是<" + brand.brand() + this.type() + ">电脑"); }}/** * @author bwx * @date 2017/11/28 */public class Desktop extends Computer { public Desktop(Brand brand) { super(brand); } public String type() { return "台式"; }}/** * @author bwx * @date 2017/11/28 */public class Pad extends Computer { public Pad(Brand brand) { super(brand); } public String type() { return "平板"; }}/** * @author bwx * @date 2017/11/28 * 桥接模式 */public class Main { public static void main(String[] args) { Computer computer = new Desktop(new Dell()); computer.sale(); }}
## 优点 ##
- 桥接模式分离实现与抽象,使抽象可实现可以独立的扩展。当修改实现的代码时,不影响抽象的代码,反之也一样。
- 满足开闭-原则,抽象和实现者处于同层次,使系统可独立的扩展这两个层次。增加新的具体实现者,不需要修改细化抽象,反之增加新的细化抽象也不需要修改具体实现。
## 解析 ##
- 桥接模式是一种结构型模式,它主要应对的是:由于实际的需要,某个类具有两个或两个以上的维度变化,如果只是用继承将无法实现这种需要,或者使得设计变得相当臃肿。
- 桥接模式的做法是把变化部分抽象出来,使变化部分与主类分离开来,从而将多个维度的变化彻底分离。最后,提供一个管理类来组合不同维度上的变化,通过这种组合来满足业务的需要。
阅读全文
0 0
- Java 设计模式 之 桥接模式
- Java 设计模式 之 桥接模式
- Java 设计模式 之 桥接模式
- Java 设计模式之桥接模式
- JAVA设计模式之桥接模式
- 《Java设计模式》之桥接模式
- java设计模式之桥接模式
- Java设计模式之桥接模式
- 【Java设计模式】之桥接模式
- java设计模式之桥接模式
- java设计模式之桥接模式
- Java设计模式之桥接模式
- Java设计模式之-桥接模式
- Java设计模式之桥接模式
- java设计模式之桥接模式
- JAVA设计模式之桥接模式
- java设计模式之桥接模式
- JAVA设计模式之桥接模式
- C#导出EXCEL超大数据源码,解决内存溢出问题,使用OLEDB方式(NPOI做不到)
- 现在我是菜鸟——第一行代码
- 【工作记录】入职两周状态记录
- 【CSP201709-5】除法
- IDEA中tomcat的配置
- java设计模式之桥接模式
- 老司机带你玩转linux(二)shell的设置以及新建用户
- eclipse alt+/智能提示错误:problems during content assist
- Could not find property 'outputFile' on com.android.build.gradle.internal.api.ApplicationVariantImpl
- MFC代码调试或者关闭主界面出现致命错误,提示框架无法被kernelbass.dll识别或已缺失
- Burp Suite基础教学 --持续更新中 最后更新(2017/12/10)
- 接口访问加密方式
- Windows 7 显示适配器
- python中的单引号、双引号、三引号