桥接(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 桥接模式的更多相关文章

  1. java 桥接模式实现代码

    写在前面 桥接模式:将抽象与实现分离,使它们可以独立变化.它是用组合/聚合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度. 使用场景1:要绘制矩形.圆形.椭圆.正方形,绘制的图形需 ...

  2. Java桥接模式

    定义:将抽象部分与它的具体实现部分分离,使他们都可以独立的变化 通过组合的方式建立两个类之间联系,而不是继承 类型:结构型 适用场景: 抽象和具体实现之间增加更多的灵活性 一个类存在两个(或多个)独立 ...

  3. 重学 Java 设计模式:实战桥接模式(多支付渠道「微信、支付宝」与多支付模式「刷脸、指纹」场景)

    作者:小傅哥 博客:https://bugstack.cn - 编写系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 为什么你的代码那么多ifelse 同类的业务.同样的功能, ...

  4. JAVA 设计模式 桥接模式

    用途 桥接模式 (Bridge) 将抽象部分与实现部分分离,使它们都可以独立的变化. 桥接模式是一种结构式模式. 结构

  5. Java设计模式13:常用设计模式之桥接模式(结构型模式)

    1. Java之桥接模式(Bridge Pattern) (1)概述: 首先我们说一个生活中的例子:       就拿汽车在路上行驶的来说.即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也 ...

  6. JAVA与.NET的相互调用——利用JNBridge桥接模式实现远程通讯

    分布式开发的历史 利用Remote方式调用远程对象实现服务器与客户端之间通讯是一种常用的网络开发方式,在.NET与JAVA开发当中,对Remote远程对象早已有着足够的支持(对Remote远程对象调用 ...

  7. 菜鸟版JAVA设计模式-从抽象与实现说桥接模式

    桥接模式,初学的时候事实上非常不理解为什么要把这个模式命名为桥接模式,脑海里突然联想到.事实上我学习是一件比較痛苦的事情,由于我必需要知道来龙去脉才干学的进去,所以,非常快我就对这个命名产生了兴趣,桥 ...

  8. java设计模式之十桥接模式(Bridge)

    桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化.桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时 ...

  9. Java设计模式之《桥接模式》及应用场景

    摘要: 原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6497919.html 这里摘抄一份他处的概念,你可以不必理会,先看下面得讲解与实例, ...

随机推荐

  1. Ant + Tomcat + Jenkins 实现自动化部署

    前言:博主资历尚浅,很多东西都还在刚起步学习的阶段,这几天开发任务比较轻,就在自己window系统下,模拟部署远程服务器,利用Jenkins + Ant + Tomcat 搭建了一个自动发布部署的环境 ...

  2. js 前端有消息了 声音提示给用户

    前言:工作中有需求,在数据变更有变更时采用声音提示给用户,这里记录一下.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9936180.html 网站地址:我的个 ...

  3. 设计模式之策略模式(Strategy)

    策略模式将不同算法的逻辑抽象接口封装到一个类中,通过组合和多态结合的方式来进行不同算法具体的实现. 作用 策略模式是一种定义一系列算法的方法,Strategy类层次为Context定义了一系列的可重用 ...

  4. 【读书笔记】iOS-配件

    如果你想用External Accessory框架开发第三方硬件设备,你需要考虑成为Made for iPhone(MFI)授权项目的成员. 得到授权的开发者可以获取技术资料,硬件设备以及技术支持,以 ...

  5. python之约束, 异常处理, md5

    1. 类的约束 1. 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementedError (重点) 2. 抽象类和抽象方法 # 语法 # from abc import ABCMet ...

  6. OSGI企业应用开发(十四)整合Spring、Mybatis、Spring MVC

    作为一个企业级的Web应用,MVC框架是必不可少的.Spring MVC目前使用也比较广泛,本文就来介绍一下如何在OSGI应用中实现Spring.Mybatis.Spring MVC框架的整合,其中S ...

  7. getWidth()和getMeasuredWidth()的区别

    结论:getMeasuredWidth()获取的是view原始的大小,也就是这个view在XML文件中配置或者是代码中设置的大小.getWidth()获取的是这个view最终显示的大小,这个大小有可能 ...

  8. [Q&A] 解决 SBT 初始化或下载 jar 包速度慢的问题

    原文地址:https://www.cnblogs.com/memento/p/9153012.html 在 C:\Users\用户名\.sbt 目录下添加一个 "repositories&q ...

  9. 消除TortoiseSVN 检出到(checkout)桌面上显示一堆问号

    之前不小心直接将版本库的内容检出到桌面,后才发现桌面上的文件图标都变成了问号,新建文件夹也同样如此. 为了解决这个问题,采用如下方法(任何一个检出文件夹均可这样操作): 1.删除桌面隐藏的.SVN文件 ...

  10. jquery常用表单操作

    //js将表单序列化成对象 $.fn.serializeObject = function () { var $els = $(this).find("[name]"); var ...