桥接模式(Bridge)-Java
2016-05-26 12:52
453 查看
以前百度空间写的全没了,全部重写一遍
【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。
桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。
输出结果
源码:https://github.com/dingsai88/StudyTest/tree/master/src/ding/study/designpatterns/bridge
【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。
桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。
package ding.study.designpatterns.bridge; /** * 手机软件接口 * * @author daniel * @email 576699909@qq.com * @time 2016-5-26 上午11:45:16 */ public interface PhoneSoft { public void run(); }
package ding.study.designpatterns.bridge; /** * 手机软件-通讯录 * @author daniel * @email 576699909@qq.com * @time 2016-5-26 上午11:47:12 */ public class PhoneSoftAddressList implements PhoneSoft { @Override public void run() { System.out.println(" 运行手机通讯录软件"); } }
package ding.study.designpatterns.bridge; /** * 手机软件实现类-打游戏 * @author daniel * @email 576699909@qq.com * @time 2016-5-26 上午11:46:17 */ public class PhoneSoftGame implements PhoneSoft { @Override public void run() { System.out.println(" 运行手机游戏软件"); } }
package ding.study.designpatterns.bridge; /** * 手机品牌抽象类 * @author daniel * @email 576699909@qq.com * @time 2016-5-26 上午11:52:09 */ public abstract class PhoneBrand { /** * 手机软件 */ protected PhoneSoft phoneSoft ; public void setPhoneSoft(PhoneSoft phoneSoft){ this.phoneSoft=phoneSoft; } /** * 运行软件 * @author daniel * @time 2016-5-26 上午11:52:03 */ public abstract void run(); }
package ding.study.designpatterns.bridge; /** * iphone4手机品牌 * @author daniel * @email 576699909@qq.com * @time 2016-5-26 下午12:46:49 */ public class PhoneBrandIphone4 extends PhoneBrand { @Override public void run() { System.out.println("Iphone4运行"); this.phoneSoft.run(); } }
package ding.study.designpatterns.bridge; /** * phone5手机品牌 * @author daniel * @email 576699909@qq.com * @time 2016-5-26 下午12:47:00 */ public class PhoneBrandIphone5 extends PhoneBrand { @Override public void run() { System.out.println("Iphone5运行"); this.phoneSoft.run(); } }
package ding.study.designpatterns.bridge; public class Zmain { /** * 【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。 * 桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。 * @author daniel * @time 2016-5-26 下午12:42:52 * @param args */ public static void main(String[] args) { PhoneBrandIphone5 i5 = new PhoneBrandIphone5(); i5.setPhoneSoft(new PhoneSoftGame()); i5.run(); i5.setPhoneSoft(new PhoneSoftAddressList()); i5.run(); PhoneBrandIphone4 i4 = new PhoneBrandIphone4(); i4.setPhoneSoft(new PhoneSoftGame()); i4.run(); i4.setPhoneSoft(new PhoneSoftAddressList()); i4.run(); } }
输出结果
源码:https://github.com/dingsai88/StudyTest/tree/master/src/ding/study/designpatterns/bridge
相关文章推荐
- Eclipse安装LaTex插件TeXlipse
- 根据日期得到星座
- MyEclipse 2014 Maven4MyEclipse 新建导入maven项目
- 为什么Java匿名内部类的方法中用到的局部变量都必须定义为final
- RSA基于Java Web的前台公钥加密后台私钥解密
- Struts2文件上传
- JAVA垃圾回收机制
- MyEclipse2015 Stable2.0 安装与破解
- SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)
- 基于Struts2大文件分片断点续传
- java jdk 1.6 下载
- Binder源码分析之Java层
- java process.waitfor 返回1 解决
- 【JAVA框架】Hibernate 与Mybatis 区别
- 使用Spring MVC 配置
- 由java.lang.NoClassDefFoundError: List错误引发的jdk配置
- JavaBean为什么要实现系列化Serializable接口
- (2.2.4.1)Java Observable 模式
- Java递归删除
- 欢迎使用CSDN-markdown编辑器