java 桥接模式
桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
1)适配器:改变已有的两个接口,让他们相容。
2)桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离。
/**
* @author liusongwei
* @Title: Car
* @ProjectName demohystrix
* @Description: 定义一个交通工具的接口
* @date 2018/12/2815:58
*/
public interface Traffic {
void byontake(String name);
}
/**
* @author liusongwei
* @Title: Plane
* @ProjectName demohystrix
* @Description: 交通工具之一飞机
* @date 2018/12/2816:02
*/
public class Plane implements Traffic {
@Override
public void byontake(String name) {
System.out.println(name + "乘坐飞机去少林寺");
}
}
/**
* @author liusongwei
* @Title: Train
* @ProjectName demohystrix
* @Description: 交通工具之一火车
* @date 2018/12/2816:00
*/
public class Train implements Traffic {
@Override
public void byontake(String name) {
System.out.println(name + "乘坐火车去少林寺");
}
}
/**
* @author liusongwei
* @Title: Whois
* @ProjectName demohystrix
* @Description: 定义一个抽象类谁乘坐交通工具
* @date 2018/12/2816:03
*/
public abstract class Whois {
private Traffic traffic; public Whois(Traffic traffic){
this.traffic = traffic;
} public void WhereGoTo(String name){
traffic.byontake(name);
}
}
/**
* @author liusongwei
* @Title: Man
* @ProjectName demohystrix
* @Description: 人类
* @date 2018/12/2816:06
*/
public class Man extends Whois {
public Man(Traffic traffic) {
super(traffic);
}
}
/**
* @author liusongwei
* @Title: Demo
* @ProjectName demohystrix
* @Description: TODO
* @date 2018/12/2816:07
*/
public class Demo {
public static void main(String[] args){
Whois whois = new Man(new Train());
whois.WhereGoTo("张三"); Whois whois2 = new Man(new Plane());
whois2.WhereGoTo("李四"); }
}
java 桥接模式的更多相关文章
- java 桥接模式实现代码
写在前面 桥接模式:将抽象与实现分离,使它们可以独立变化.它是用组合/聚合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度. 使用场景1:要绘制矩形.圆形.椭圆.正方形,绘制的图形需 ...
- Java桥接模式
定义:将抽象部分与它的具体实现部分分离,使他们都可以独立的变化 通过组合的方式建立两个类之间联系,而不是继承 类型:结构型 适用场景: 抽象和具体实现之间增加更多的灵活性 一个类存在两个(或多个)独立 ...
- 重学 Java 设计模式:实战桥接模式(多支付渠道「微信、支付宝」与多支付模式「刷脸、指纹」场景)
作者:小傅哥 博客:https://bugstack.cn - 编写系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 为什么你的代码那么多ifelse 同类的业务.同样的功能, ...
- JAVA 设计模式 桥接模式
用途 桥接模式 (Bridge) 将抽象部分与实现部分分离,使它们都可以独立的变化. 桥接模式是一种结构式模式. 结构
- Java设计模式13:常用设计模式之桥接模式(结构型模式)
1. Java之桥接模式(Bridge Pattern) (1)概述: 首先我们说一个生活中的例子: 就拿汽车在路上行驶的来说.即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也 ...
- JAVA与.NET的相互调用——利用JNBridge桥接模式实现远程通讯
分布式开发的历史 利用Remote方式调用远程对象实现服务器与客户端之间通讯是一种常用的网络开发方式,在.NET与JAVA开发当中,对Remote远程对象早已有着足够的支持(对Remote远程对象调用 ...
- 菜鸟版JAVA设计模式-从抽象与实现说桥接模式
桥接模式,初学的时候事实上非常不理解为什么要把这个模式命名为桥接模式,脑海里突然联想到.事实上我学习是一件比較痛苦的事情,由于我必需要知道来龙去脉才干学的进去,所以,非常快我就对这个命名产生了兴趣,桥 ...
- java设计模式之十桥接模式(Bridge)
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化.桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时 ...
- Java设计模式之《桥接模式》及应用场景
摘要: 原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6497919.html 这里摘抄一份他处的概念,你可以不必理会,先看下面得讲解与实例, ...
随机推荐
- Docker compose 与 Docker swarm
安装 docker :https://www.cnblogs.com/klvchen/p/8468855.html 安装 docker-compose : https://www.cnblogs.co ...
- 解决element-ui的el-select组件文字超过宽度时不出现横向滚动条问题
我用的element-ui是V1.4.3. 目前遇到一个问题,在用el-select组件的时候,当选项的内容很长的时候,会撑开下拉菜单的宽度,这样影响美观.具体如下图所示: 解决这个问题的思路:设置下 ...
- [VUE ERROR] Duplicate keys detected: 'tab-user'. This may cause an update error.
错误消息如图: 如果你看到此错误消息,则说明 v-for 指令的 key值 重复了,只需修改你的 key值 让其不会重复即可.
- win7x64上配置 vs2015
win7 x64配置vs2015成功关键 1. 首先查看win7版本是否是sp1或以上: [计算机]----->[属性] 2. 将IE浏览器升级到IE11: IE11[百度网盘下载],提取码:[ ...
- 测试思想-集成测试 关于接口测试 Part1
关于接口测试 by:授客 QQ:1033553122 接口定义 接口泛指实体把自己提供给外界的一种抽象化物,用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式. 举例 ...
- Android basics
只要是Android中的控件,最终都继承自View.
- 13LaTeX学习系列之---LaTeX插入表格
目录 目录 前言 (一)插入表格的基础语法 1.说明 2.源代码 3.输出效果 (二)查看文档 目录 本系列是有关LaTeX的学习系列,共计19篇,本章节是第13篇. 前一篇:12LaTeX学习系列之 ...
- git命令行clone指定分支、更新、冲突解决、提交代码步骤
clone指定分支 : git init 初始化仓库 git clone -b 分支名 git@192.168.3.166:xxxx/xxxx.git 克隆指定分支 更新 :git status ...
- IP与子网掩码
一.IP地址 1.IP:在网络中,为了实现不同计算机之间的通信,每台计算机都必须有一个唯一的地址. 2.IP地址的表示 ①IP地址是一个32位的二进制数,通常以两种方式呈现:二进制和十进制. ②二进制 ...
- EasyUI设置选中复选框
//设置选中 $('#isBind').prop('checked', true); //获取是否选中 var isChecked = $('#isBind').prop('checked'); if ...