桥接模式/bridge模式/对象结构型
意图
将抽象部分与它的实现部分分离,使它们都可以独立的变化。
动机
当一个抽象类有多个实现时,通常用继承来协调它们。但是继承机制将抽象和实现固定,难以对抽象部分和实现部分独立地进行修改、扩充和重用。
此时通过一个桥接类,并且桥接类的操作都是抽象定义的,这就将抽象和实现进行了部分分离,它在抽象与实现之间起到了桥梁的作用,使他们可以独立变化。
java实现要素:桥接类+接口+接口实现(多种)
- 桥接类持有接口类型对象,并且桥接类中所有操作都是接口方法
- 接口,规定实现类需要实现的方法
- 接口实现,实现接口规定方法
代码实现
/**
* 接口,定义规范
*
*/
public interface Driver {
String getConn();
}
/**
* 桥接类,桥接接口和具体实现
*/
public class DriverManager {
static Driver driver;
public static String getConn(String driverUrl) {
try {
driver=(Driver)Class.forName(driverUrl).newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return driver.getConn();
}
}
/**
* 具体实现类
*
*/
public class MySqlDriver implements Driver {
@Override
public String getConn() {
return "this.is: mysql.driver";
}
}
public class OracleDriver implements Driver {
@Override
public String getConn() {
return "this.is: oracle.driver";
}
}
//测试
public class Test {
public static final String MYSQL_DRIVER="kun.com.bridge.MySqlDriver";
public static final String ORACLE_DRIVER="kun.com.bridge.OracleDriver";
public static void main(String[] args) {
String mysql=DriverManager.getConn(MYSQL_DRIVER);
System.out.println(mysql);
String oracle=DriverManager.getConn(ORACLE_DRIVER);
System.out.println(oracle);
}
}

JDK中的桥接模式
很明显,代码示例中的DriverManager....
java.sql.DriverManager
桥接模式/bridge模式/对象结构型的更多相关文章
- 组合模式/composite模式/对象结构型模式
组合模式/composite模式/对象结构型 意图 将对象组合成树形结构以表示"整体--部分"的层次结构.Composite使得用户对单个对象和组合对象的使用具有一致性. 动机 C ...
- 享元模式/Flyweight模式/对象结构型/设计模式
flyweight 享元模式(对象结构型) Flyweight在拳击比赛中指最轻量级,即"蝇量级"或"雨量级",这里选择使用"享元模式"的意 ...
- OOAD-设计模式(四)结构型模式之适配器、装饰器、代理模式
前言 前面我们学习了创建型设计模式,其中有5中,个人感觉比较重要的是工厂方法模式.单例模式.原型模式.接下来我将分享的是结构型模式! 一.适配器模式 1.1.适配器模式概述 适配器模式(Adapter ...
- 组合模式(Composite Pattern) ------------结构型模式
组合模式使用面向对象的思想来实现树形结构的处理和构件,描述了如何将容器对象和叶子对象进行递归组合,实现简单,灵活性好. 组合模式(Composite Pattern):组合多个对象形成树形结构以表示具 ...
- C#设计模式之八桥接模式(Bridge)【结构型】
一.引言 今天我们要讲[结构型]设计模式的第二个模式,该模式是[桥接模式],也有叫[桥模式]的.大家第一次看到这个名称会想到什么呢?我第一次看到这个模式根据名称猜肯定是连接什么东西的.因为桥在我们现实 ...
- Bridge模式——对象结构型模式
今天看了Bridge模式,对其进行简单的总结,并给出几篇通俗易懂的文章链接. (一)意图--将抽象部分和它的实现部分分离,使它们都可以独立地变化. 适用于从多维度描述的类型,拆解开来,使其能沿着各维度 ...
- 设计模式(7)-结构型模式-Bridge模式
2.结构性模式 2.2 BRIDGE模式 别名:handle/body 这个模式体现了组合相对于继承的优势. 2.2.1动机 当一个抽象可能有多个实现时,通经常使用继承来协调它们.抽象类定义对该抽象 ...
- ANDROID 中设计模式的採用--结构型模式
结构型模式中的适配器模式.外观模式.装饰模式.代理模式都属于包装模式,都是对另外的类或对象的包装,仅仅是各自的意图不同. 适配器模式通过对另外的类或对象的包装,将其接口转换为用户期 ...
- 享元模式(Flyweight)---结构型
1 基础知识 定义:提供了减少对象数量从而改善应用所需的对象结构的方式.特征:运用共享技术有效支持大量细粒度的对象. 本质:分离与共享. 使用场景: (1)如果一个应用程序使用了大量的细粒度对象,可以 ...
- 外观模式(Facade)---结构型模式
1 基础知识 定义:提供了一个统一的接口(外观类),用来访问子系统中的一群接口.特征:定义了一个高层接口让子系统更容易使用,减少了外部与子系统内多个模块的耦合. 本质:封装交互,简化调用. 优点:简化 ...
随机推荐
- Java中接口的实现问题
1.Java 接口的访问权限 interface A{}//接口A包访问权限 public interface A{}//接口A公有访问 interface A{ void function1(): ...
- XmlRootElement JAXB
http://desert3.iteye.com/blog/1570092(文章已经很好) 看了那边文章以后尝试后写点直白的 PROPERTY: JAXB 绑定类中的每个获取方法/设置方法对将会自动绑 ...
- acm小知识
__builtin_popcount(i); __builtin_popcountll(i) ;//计算i的二进制表示中1的个数 int a[M] , b[M] ; memcpy(a+i , b+j ...
- Azure上的那些IP
相信第一次接触Azure的读者都会碰到这样一个问题,就是Azure的IP地址,笔者第一次接触Azure也是被搞懵逼了,一会儿VIP,不知道的还以为是会员的意思呢,一会儿又是DIP,后来又来了个PIP, ...
- php时间类
1.需求 数据库的时间都是用10个长度的时间戳存储,拿出来的时候要转为更易读的格式 2.例子 <?php class Mydate{ public function get_millisecon ...
- Java读取word文件,字体,颜色
在Android读取Word文件时,在网上查看时可以用tm-extractors,但好像没有提到怎么读取Word文档中字体的颜色,字体,上下标等相关的属性.但由于需要,要把doc文档中的内容(字体,下 ...
- infoq 微信后台存储架构
infoq 上微信后台存储架构 视频很是值得认真一听,大概内容摘要如下: 主要内容:同城分布式强一致,园区级容灾KV存储系统 - sync 序列号发生器 移动互联网场景下,频繁掉线重连,使用 ...
- AtomicBoolean介绍与使用
java.util.concurrent.atomic.AtomicBoolean 继承自Object. 介绍: 在这个Boolean值的变化的时候不允许在之间插入,保持操作的原子性 方法和举例 ...
- 解决Eclipse Failed to write core dump. Minidumps are not enabled by default on client versions
-XX:+CreateMinidumpOnCrash 如果还有问题,就只能看日志了 T_T
- vue.js 请求数据
VUE.JS var vm = new Vue({ el:"#list", data:{ gridData: "", }, mounted: function( ...