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 这里摘抄一份他处的概念,你可以不必理会,先看下面得讲解与实例, ...
随机推荐
- 【Spring】1、Spring 中的监听器 Listener
一.接口 1.EventListener 2.HttpSessionAttributeListener 继承EventListener接口 HttpSessionAttributeListener ...
- HDU5037(SummerTrainingDay01-C)
Frog Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Subm ...
- HDU6215
Brute Force Sorting Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Othe ...
- JqGrid: Add,Edit,Del in asp.net
https://github.com/1rosehip/jplist https://github.com/free-jqgrid/jqGrid https://plugins.jquery.com/ ...
- python之装饰器(函数)
1. 装饰器 遵循的原则: 开闭原则: 对功能的扩展开放 对代码的修改是封闭 # 通用装饰器写法 # 存在的意义: 在不破坏原有函数和原有函数调用的基础上,给函数添加新的功能. def wrapp ...
- kvm 安装操作系统问题
1.出现error processing drive: 解决: --ram 设置到1024 2.分区的时候磁盘文件大小为0 解决:创建虚拟机的时候添加参数ormat=qcow2,size=7,bus= ...
- (网页)JS和CSS不缓存方法,时间戳
<link ..... href=".....css?time"+new Date()> <script type="text/javascript&q ...
- Python笔记(十四):操作excel openpyxl模块
(一) 常遇到的情况 就我自己来说,常遇到的情况可能就下面几种: 读取excel整个sheet页的数据. 读取指定行.列的数据 往一个空白的excel文档写数据 往一个已经有数据的excel文档追加 ...
- sqlserver 2017 docker安装(启动代理)
从 Docker Hub 中拉出 SQL Server 2017 Linux 容器映像. docker pull microsoft/mssql-server-linux:2017-latest 运行 ...
- [20180604]在内存修改数据(bbed).txt
[20180604]在内存修改数据(bbed).txt --//以前曾经做过在内存修改数据,通过oradebug poke命令修改内存信息,相关链接:--//http://blog.itpub.net ...