【设计模式】7、桥接模式
桥接模式就是对一个类的方法进行抽象化,吧不相关的因素提取出来,发展出第二个类
1 package com.shejimoshi.structural.Bridge; 2 3 4 /** 5 * 功能:桥接模式使用 6 * 意图:将抽象部分与它的实现部分分离,使他们都可以独立的变化 7 * 适用性:你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 8 * 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充 9 * 对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译 10 * 你想在多个对象间共享实现,但同时要求客户并不知道这一点 11 * 时间:2016年2月17日下午7:45:10 12 * 作者:cutter_point 13 */ 14 public abstract class Systeml 15 { 16 //相应系统的软件 17 protected Soft soft; 18 19 public abstract void using(); 20 21 public void installSoft(Soft soft) 22 { 23 this.soft = soft; 24 } 25 }
1 package com.shejimoshi.structural.Bridge; 2 3 4 /** 5 * 功能:桥接模式使用 6 * 意图:将抽象部分与它的实现部分分离,使他们都可以独立的变化 7 * 适用性:你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 8 * 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充 9 * 对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译 10 * 你想在多个对象间共享实现,但同时要求客户并不知道这一点 11 * 时间:2016年2月17日下午7:54:12 12 * 作者:cutter_point 13 */ 14 public class Window extends Systeml 15 { 16 //默认构造函数 17 public Window(){} 18 19 public Window(Soft soft) 20 { 21 //给系统安装相应的软件 22 this.soft = soft; 23 } 24 25 @Override 26 public void using() 27 { 28 System.out.print("Window 系统运行:"); 29 soft.run();//系统运行相应的软件 30 } 31 32 }
1 package com.shejimoshi.structural.Bridge; 2 3 4 /** 5 * 功能:桥接模式使用 6 * 意图:将抽象部分与它的实现部分分离,使他们都可以独立的变化 7 * 适用性:你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 8 * 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充 9 * 对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译 10 * 你想在多个对象间共享实现,但同时要求客户并不知道这一点 11 * 时间:2016年2月17日下午7:57:12 12 * 作者:cutter_point 13 */ 14 public class Linux extends Systeml 15 { 16 //默认构造函数 17 public Linux(){} 18 19 public Linux(Soft soft) 20 { 21 //给系统安装相应的软件 22 this.soft = soft; 23 } 24 25 @Override 26 public void using() 27 { 28 System.out.print("Linux 系统运行:"); 29 soft.run();//系统运行相应的软件 30 } 31 32 }
1 package com.shejimoshi.structural.Bridge; 2 3 4 /** 5 * 功能:桥接模式使用 6 * 意图:将抽象部分与它的实现部分分离,使他们都可以独立的变化 7 * 适用性:你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 8 * 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充 9 * 对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译 10 * 你想在多个对象间共享实现,但同时要求客户并不知道这一点 11 * 时间:2016年2月17日下午7:52:58 12 * 作者:cutter_point 13 */ 14 public interface Soft 15 { 16 public void run(); 17 }
1 package com.shejimoshi.structural.Bridge; 2 3 4 /** 5 * 功能:编译器 6 * 时间:2016年2月17日下午7:58:17 7 * 作者:cutter_point 8 */ 9 public class Compiler implements Soft 10 { 11 12 @Override 13 public void run() 14 { 15 System.out.println("运行编译器"); 16 } 17 18 }
1 package com.shejimoshi.structural.Bridge; 2 3 4 /** 5 * 功能:浏览器 6 * 时间:2016年2月17日下午8:00:09 7 * 作者:cutter_point 8 */ 9 public class Browser implements Soft 10 { 11 12 @Override 13 public void run() 14 { 15 System.out.println("运行浏览器"); 16 } 17 18 }
1 package com.shejimoshi.structural.Bridge; 2 3 4 /** 5 * 功能:测试桥接模式 6 * 时间:2016年2月17日下午8:06:05 7 * 作者:cutter_point 8 */ 9 public class Test 10 { 11 public static void main(String[] args) 12 { 13 //我们的软件 14 Soft browser = new Browser(); 15 Soft compiler = new Compiler(); 16 17 //我们在window系统上安装浏览器使用 18 Systeml win = new Window(); 19 win.installSoft(browser); 20 win.using(); 21 22 System.out.println("==============================="); 23 //Linux 上安装浏览器还要编译器 24 Systeml ubuntu = new Linux(browser); 25 ubuntu.using(); 26 ubuntu.installSoft(compiler); 27 ubuntu.using(); 28 29 } 30 }
测试结果:
Window 系统运行:运行浏览器
===============================
Linux 系统运行:运行浏览器
Linux 系统运行:运行编译器
转载于:https://www.cnblogs.com/cutter-point/p/5196456.html
【设计模式】7、桥接模式相关推荐
- java桥接和装饰_设计模式:桥接模式和装饰模式
原标题:设计模式:桥接模式和装饰模式 一.桥接模式简介 1.基础描述 桥梁模式是对象的结构模式.又称为柄体(Handle and Body)模式或接口(Interface)模式.桥梁模式的用意是&qu ...
- C++设计模式之桥接模式
这篇文章主要介绍了C++设计模式之桥接模式,本文讲解了什么是桥接模式.为什么要使用桥接模式.什么时候使用桥接模式等内容,需要的朋友可以参考下 问题描述 现在要去画一个图形,图形有长方形.圆形和扇形等等 ...
- php设计模式之桥接模式
php设计模式之桥接模式 一.概述 桥接模式:将两个原本不相关的类结合在一起,然后利用两个类中的方法和属性,输出一份新的结果. 其实就是讲不相关的东西通过类(本例中是SendInfo)结合在一起,从而 ...
- java 懒加载模式_JavaScript面试系列:JavaScript设计模式之桥接模式和懒加载
我写的程序员面试系列文章 Java面试系列-webapp文件夹和WebContent文件夹的区别? 程序员面试系列:Spring MVC能响应HTTP请求的原因? Java程序员面试系列-什么是Jav ...
- 详解设计模式:桥接模式
桥接模式(Bridge Pattern)也称为桥梁模式.接口模式或者柄体模式,有点像适配器模式,也是 GoF 的 23 种设计模式中的一种结构型设计模式. 桥接模式 是用于把抽象化与实现化解耦,使得二 ...
- 设计模式之桥接模式详解
设计模式之桥接模式详解 文章目录 设计模式之桥接模式详解 一.什么是桥接模式 二.桥接模式的应用场景 三.桥接模式的角色组成 四.桥接模式通用写法示例 五.桥接模式优缺点 一.什么是桥接模式 桥接模式 ...
- 如何让孩子爱上设计模式 ——10.桥接模式(Bridge Pattern)
如何让孩子爱上设计模式 --10.桥接模式(Bridge Pattern) 标签: 设计模式初涉 我有故事,你有酒吗?这年头写个技术文不讲个故事都不行,行,我讲: 还有发现很多的技术博文都开始有喜欢往 ...
- java 设计模式之桥接模式,策略模式
java 设计模式之桥接模式,策略模式 1.引出设计模式 相信大家都玩过王者荣耀这款游戏.我们知道现在大概有九十多个英雄且各自技能及背景故事.台词.被动都不一样而且还带着召唤师技能比如实现,惩戒,弱化 ...
- 《设计模式》桥接模式
<设计模式>设计模式的基本原则 <设计模式>单例模式 <设计模式>工厂模式 <设计模式>原型模式 <设计模式>建造者模式 <设计模式& ...
- 设计模式之桥接模式(Bridge)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式包括:1.FactoryMethod(工厂方法模式):2.Abstract Factory(抽象工厂模式):3.Sin ...
最新文章
- starUML -- 各种图绘制
- java 远程 shell脚本_Java 远程调用 shell脚本
- CentOS7开机启动图形界面的开启与关闭
- java网络通信:异步非阻塞I/O (NIO)
- Python基础语法-Python,Java,C++变量互换值的区别
- 用python画数学函数图像教程_Python 绘制你想要的数学函数图形
- WPF入门教程系列(一) 创建你的第一个WPF项目
- 【前端】【cornerstone】【未完善】cornerstone重新加载图像大小问题——拒绝花里胡哨
- 如何用 JavaScript+Canvas 开发一款超级烧脑小游戏?
- java 十亿数据去重_如何在有限的内存限制下实现数十亿级手机号码去重
- 安装MySQL和出现的问题解决
- 【C++】【Opencv】【vs2015】环境配置
- ENVI学习总结(十五)——遥感影像分类与应用
- Windows下设置Mongodb用户名密码
- nodejs实现桌面程序exe
- STM32L476入坑-2-STM32CubeMX安装
- Windows影子账户创立
- 警告: A docBase D:\apache-tomcat-8.5.12\webapps\webapps\projectname inside the host appBase has been
- 京东618大促,全店商品如何导出?
- android 白色圆点,Android通知图标是一个白色圆圈
热门文章
- *【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐打游戏(bfs,双元bfs,思维)
- 无数种求逆元的方法总结
- EasyOcr 安装(linux、docker)、使用(gin、python)
- github 上传代码_leetcode爬虫:爬取代码;生成readme;上传github
- hdfs如何查找指定目录是否文件_hadoop实战教程-HDFS文件系统如何查看文件对应的block...
- 极品飞车ol服务器维护,《极品飞车OL》配件升级常见问题介绍
- android 判断空,Android空判断的坑
- Maven中maven-source-plugin,maven-javadoc-plugin插件的使用:
- C/C++中static的用法全局变量与局部变量
- TCP与UDP特点与区别