JAVA设计模式之桥接模式(bridge)
桥接模式:
分离抽象与具体实现,让他们可以独自发展,防止类爆炸
场景:
过年走亲戚是我们中国人传统的习俗,走亲戚那就少不了要买东西(苹果,牛奶等等),这些具体的东西就是具体的类
蒙牛牛奶,有机苹果,有机,蒙牛这些就是抽象,东西各种各样,随着制造业以及人类的智慧这些抽象也在不断发展
将这些抽象与具体的类通过一个桥梁连接起来就是桥接模式。
问题:我走丈母娘家想送一些有机苹果,该怎么实现呢,请看代码
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)的更多相关文章
- 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern)
原文:乐在其中设计模式(C#) - 桥接模式(Bridge Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern) 作者:webabcd 介绍 ...
- java设计模式7——桥接模式
java设计模式7--桥接模式 1.桥接模式介绍 桥接模式是将抽象部分与它的实现部分分离,使他们都可以独立的变化.它是一种对象结构型模式,又称为柄体模式或接口模式. 2.解决问题 2.1.将复杂的组合 ...
- python 设计模式之桥接模式 Bridge Pattern
#写在前面 前面写了那么设计模式了,有没有觉得有些模式之间很类似,甚至感觉作用重叠了,模式并不是完全隔离和独立的,有的模式内部其实用到了其他模式的技术,但是又有自己的创新点,如果一味地认为每个模式都是 ...
- 【设计模式】桥接模式 Bridge Pattern
开篇还是引用吕振宇老师的那篇经典的文章<设计模式随笔-蜡笔与毛笔的故事>.这个真是太经典了,没有比这个例子能更好的阐明桥接模式了,这里我就直接盗来用了. 现在市面上卖的蜡笔很多,各种型号, ...
- 二十四种设计模式:桥接模式(Bridge Pattern)
桥接模式(Bridge Pattern) 介绍将抽象部分与它的实现部分分离,使它们都可以独立地变化. 示例有一个Message实体类,对它的操作有Insert()和Get()方法,现在使这些操作的抽象 ...
- [设计模式] 7 桥接模式 bridge
#include<iostream> using namespace std; class AbstractionImp { public: virtual ~AbstractionImp ...
- java设计模式之桥接模式
桥接模式 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦.这种模式涉及到一个作为桥接的 ...
- Java设计模式应用——桥接模式
性能管理系统中,数据产生后需要经过采集,汇聚,入库三个流程,用户才能查询使用. 采集可以是snmp采集,也可以是ems采集:汇聚可以使storm汇聚,也可以是spark汇聚:入库可以是hdfs入库,也 ...
- java设计模式之-----桥接模式
一.概念定义 将抽象部分和实现部分分离,使他们都可以独立的变化.(这句话有点抽象啊..) 在软件系统中,某种类型由于自身逻辑,具有多个维度的变化,如何利用面向对象的技术来使得该类型沿着多方向变化,而又 ...
随机推荐
- compareAndSet() 注意点
compareAndSet()与weakCompareAndSet()是有条件的修改程序的方法,这两个方法都要取用两个参数:在方法启动时预期数据所具有的的值,以及要把数据所设定成的值.它们都只会在变量 ...
- 表字段或表名出现Mysql关键字或保留字导致问题 Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have
MySQL 5.7使用的关键字和保留字 https://dev.mysql.com/doc/refman/5.7/en/keywords.html 当我们建表的时候如果使用了关键字或者保留字,则在执行 ...
- AJ学IOS(47)之网易彩票帮助界面UIWebView的运用
AJ分享,必须精品 效果: 制作过程 首先是帮助按钮那个地方的点击. 这里是用点击跳转的用的是 NJSettingArrowItem,前面的设置的,从字典通过模型转过来的. // 分享 NJSetti ...
- 对短路变形POJ3615
Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gang are ...
- 基础_TCP/IP
概念明确: 1:TCP/IP代表传输控制协议/网际协议,指的是一系列协议 为什么会叫TCP/IP.因为用的多, 2:HTTP 是属于应用层的协议 3:OSI七层模型和TCP/IP 平等,只是TCP/ ...
- 判断一个字符串是否是合法IP地址
# -*- coding: utf-8 -*- """ @File:test06_判断ip地址是否合法.py @E-mail:364942727@qq.com @Time ...
- jquary
1 定义: jquary是快速简介的Javascrīpt框架 2 分类 : 1) .js类 源代码的未压缩的可以进行更改的jquary 2) min ...
- testNG 预期异常、忽略测试、超时测试
通过@Test 注解的参数值实现如下的几种测试 一.通过 @Test(expectedExceptions=异常类名) 参数实现到达 预期指定的异常效果 @Test(expectedException ...
- 【高频 Redis 面试题】Redis 事务是否具备原子性?
一.Redis 事务的实现原理 一个事务从开始到结束通常会经历以下三个阶段: 1.事务开始 客户端发送 MULTI 命令,服务器执行 MULTI 命令逻辑. 服务器会在客户端状态(redisClien ...
- 21.SpringCloud实战项目-后台题目类型功能(网关、跨域、路由问题一文搞定)
SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. ...