桥接模式:

   分离抽象与具体实现,让他们可以独自发展,防止类爆炸

 场景:

   过年走亲戚是我们中国人传统的习俗,走亲戚那就少不了要买东西(苹果,牛奶等等),这些具体的东西就是具体的类

   蒙牛牛奶,有机苹果,有机,蒙牛这些就是抽象,东西各种各样,随着制造业以及人类的智慧这些抽象也在不断发展

   将这些抽象与具体的类通过一个桥梁连接起来就是桥接模式。

问题:我走丈母娘家想送一些有机苹果,该怎么实现呢,请看代码
1、抽象东西类
package com.srr.pd.bridge;

/**
* 东西,抽象类
*/
abstract public class Thing {
Bridge bridge;
}

2、蒙牛

package com.srr.pd.bridge;

/**
* 蒙牛
*/
public class Mengniu extends Thing{
public Mengniu(Bridge bridge){
this.bridge = bridge;
} @Override
public String toString() {
return "Mengniu{} " + this.bridge.toString();
}
}

3、有机

package com.srr.pd.bridge;

/**
* 有机的
*/
public class Organic extends Thing{
public Organic(Bridge bridge){
this.bridge = bridge;
} @Override
public String toString() {
return "Organic{} " + this.bridge.toString();
}
}

4、桥接类

package com.srr.pd.bridge;

/**
* 桥接
*/
public class Bridge {
@Override
public String toString() {
return "Bridge{}";
}
}

5、苹果

package com.srr.pd.bridge;

/**
* 苹果
*/
public class Apple extends Bridge{
@Override
public String toString() {
return "Apple{}";
}
}

6、牛奶

package com.srr.pd.bridge;

/**
* 牛奶
*/
public class Milk extends Bridge{
@Override
public String toString() {
return "Milk{}";
}
}

7、测试类

package com.srr.pd.bridge;

public class T {

    /**
* 走亲戚
*/
private static void WalkRelatives(){
Thing thing = new Organic(new Apple()); //有机苹果
//给东西
give(new MotherOfWife(),thing);
} /**
* 给东西
* @param m
* @param thing
*/
private static void give(MotherOfWife m, Thing thing) {
m.get(thing);
} static class MotherOfWife {
/**
* 收到
*/
public void get(Thing thing){
System.out.println(thing.toString() +" geted");
}
} public static void main(String[] args) {
WalkRelatives();
}
}

JAVA设计模式之桥接模式(bridge)的更多相关文章

  1. 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern)

    原文:乐在其中设计模式(C#) - 桥接模式(Bridge Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern) 作者:webabcd 介绍 ...

  2. java设计模式7——桥接模式

    java设计模式7--桥接模式 1.桥接模式介绍 桥接模式是将抽象部分与它的实现部分分离,使他们都可以独立的变化.它是一种对象结构型模式,又称为柄体模式或接口模式. 2.解决问题 2.1.将复杂的组合 ...

  3. python 设计模式之桥接模式 Bridge Pattern

    #写在前面 前面写了那么设计模式了,有没有觉得有些模式之间很类似,甚至感觉作用重叠了,模式并不是完全隔离和独立的,有的模式内部其实用到了其他模式的技术,但是又有自己的创新点,如果一味地认为每个模式都是 ...

  4. 【设计模式】桥接模式 Bridge Pattern

    开篇还是引用吕振宇老师的那篇经典的文章<设计模式随笔-蜡笔与毛笔的故事>.这个真是太经典了,没有比这个例子能更好的阐明桥接模式了,这里我就直接盗来用了. 现在市面上卖的蜡笔很多,各种型号, ...

  5. 二十四种设计模式:桥接模式(Bridge Pattern)

    桥接模式(Bridge Pattern) 介绍将抽象部分与它的实现部分分离,使它们都可以独立地变化. 示例有一个Message实体类,对它的操作有Insert()和Get()方法,现在使这些操作的抽象 ...

  6. [设计模式] 7 桥接模式 bridge

    #include<iostream> using namespace std; class AbstractionImp { public: virtual ~AbstractionImp ...

  7. java设计模式之桥接模式

    桥接模式 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦.这种模式涉及到一个作为桥接的 ...

  8. Java设计模式应用——桥接模式

    性能管理系统中,数据产生后需要经过采集,汇聚,入库三个流程,用户才能查询使用. 采集可以是snmp采集,也可以是ems采集:汇聚可以使storm汇聚,也可以是spark汇聚:入库可以是hdfs入库,也 ...

  9. java设计模式之-----桥接模式

    一.概念定义 将抽象部分和实现部分分离,使他们都可以独立的变化.(这句话有点抽象啊..) 在软件系统中,某种类型由于自身逻辑,具有多个维度的变化,如何利用面向对象的技术来使得该类型沿着多方向变化,而又 ...

随机推荐

  1. Centos7_搭建暗网网站

    Tor运行原理 请求方需要使用:洋葱浏览器(Tor Browser)来对暗网网站进行访问 响应放需要使用:Tor协议的的Hidden_service 搭建步骤 更新YUM源: rpm -Uvh htt ...

  2. 基于linux或windows平台上的c/s简单通信

    linux: tcpclient.cpp #include<iostream> #include<unistd.h> #include<sys/types.h> # ...

  3. GeoGebra重复手段实现

    1.自定义工具部分可以在网上搜一些别人做的工具,主要是把自己经常做的一些任务做成工具,减少重复过程 2.列表部分的简单操作如图所示,实现对三个点的多项式拟合 3.通过序列指令格式可以做一个好玩的效果, ...

  4. Python-selenium安装与Java-selenium安装

    一.Python安装及selenium的安装 1.安装Pythonhttps://www.Python.org2.安装setuptools.distribute.piphttps://pypi.pyt ...

  5. CodeForces - 913C (贪心)

    点完菜,他们发现好像觉得少了点什么? 想想马上就要回老家了某不愿透露姓名的林姓学长再次却陷入了沉思......... 他默默的去前台打算点几瓶二锅头. 他发现菜单上有n 种不同毫升的酒. 第 i 种有 ...

  6. jdk动态代理:由浅入深理解mybatis底层

    什么是代理 代理模式,目的就是为其他对象提供一个代理以控制对某个对象的访问,代理类为被代理者处理过滤消息,说白了就是对被代理者的方法进行增强. 看到这里,有没有感觉很熟悉?AOP,我们熟知的面向切面编 ...

  7. Hadoop环境搭建(centos)

    Hadoop环境搭建(centos) 本平台密码83953588abc 配置Java环境 下载JDK(本实验从/cgsrc 文件中复制到指定目录) mkdir /usr/local/java cp / ...

  8. APP测试和WEB测试区别

    App测试web测试的区别 单纯从功能测试的层面上来讲的话,APP 测试.web 测试 在流程和功能测试上是没有区别的 根据两者载体不一样,则区别如下: 1.兼容性测试:web端兼容浏览器,app端兼 ...

  9. sftp的用法

    linux sftp远程连接命令 sftp -oPort=60001 root@192.168.0.254 使用-o选项来指定端口号. -oPort=远程端口号 sftp> get /var/w ...

  10. scheduler_default_filters 详解

    Filter scheduler 是 nova-scheduler 默认的调度器,调度过程分为两步:     通过过滤器(filter)选择满足条件的计算节点(运行 nova-compute) 通过权 ...