桥接模式(Bridge)
来源:互联网 发布:淘宝上筒子钱真假 编辑:程序博客网 时间:2024/05/19 03:17
桥接模式用处很多,最熟知的就是JDBC的使用场景,大家都知道。我们切换数据源的时候只需要改动驱动名称,连接信息,用户名,密码信息就可以切换数据库了。
1.意图
将抽象部分与它的实现部分分离,使它们都可以独立地变化。
2.特点
1.把对象的创建与应用分离,交给调用者去根据具体情况创建不同的类。
2.通过桥接类去调用对象的具体方法。
3.UML类图
JDBC的类图如下
4.代码实现
/** * 资源接口 * 定义具体方法 */public interface Eat { void eatChicken(); void eatFish();}/** * 资源类的具体实现类 筷子 * 实现资源接口的方法 */public class Chopsticks implements Eat { @Override public void eatChicken() { System.out.println("用筷子吃鸡"); } @Override public void eatFish() { System.out.println("用筷子吃鱼"); }}/** * 资源类的具体实现类 叉子 * 实现资源接口的方法 */public class Fork implements Eat { @Override public void eatChicken() { System.out.println("用叉子吃鸡"); } @Override public void eatFish() { System.out.println("用叉子吃鱼"); }}/** * 资源类的具体实现类 勺子 * 实现资源接口的方法 */public class Spoon implements Eat { @Override public void eatChicken() { System.out.println("用勺子吃鸡"); } @Override public void eatFish() { System.out.println("用勺子吃鱼"); }}/** * 桥接类(抽象) * 1,持有资源类 * 2,定义与资源类相同的方法 */public abstract class Birdge { private Eat eat; public abstract void eatChicken(); public abstract void eatFish(); public Birdge(Eat eat) { this.eat = eat; } public Eat getEat() { return eat; } public void setEat(Eat eat) { this.eat = eat; }}/** * 桥接类的具体实现类 * 1,对具体的资源类赋值 * 2,调用具体的资源类方法 */public class MyBirdge extends Birdge { public MyBirdge(Eat eat) { super(eat); } @Override public void eatChicken() { getEat().eatChicken(); } @Override public void eatFish() { getEat().eatFish(); }}public class Client { public static void main(String[] args) { //根据具体情况 创建具体的 资源实体类 Eat eat = new Fork(); //将资源类赋值给具体桥接类 Birdge birdge = new MyBirdge(eat); //调用具体方法 birdge.eatFish(); }}
阅读全文
0 0
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- Bridge(桥接模式)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- Bridge(桥接模式)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- 桥接模式(Bridge)
- “工欲善其事 必先利其器”
- ubuntu踢掉已经登录的用户
- app集成支付宝,服务器生成请求签名字符串demo(PHP)
- js离开当前页面代码,调用方法
- SVN Update Error: Please execute the 'Cleanup' ,Cleanup时提示lock问题的解决方案
- 桥接模式(Bridge)
- 头文件和预编译指令
- javascript常见日期格式化方法
- Java += 操作符实质
- TP5 把记录循环输出(while($row = mysqli_fetch_assoc($result)))
- 炼数成金优惠码
- VUE——模范语法
- java Jedis连接VMware中CentOS-7中的Redis数据库
- CF 863A