Java-马士兵设计模式学习笔记-桥接模式
一、概述
1.桥接模式的应用情况:(1)两个维度扩展(2)排列组合
二、代码

1.Gift.java
public class Gift {
protected GiftImpl giftImpl;
}
2.GiftImpl.java
public class GiftImpl {
}
3.WarmGift.java
public class WarmGift extends Gift {
public WarmGift(GiftImpl giftImpl) {
//调用父类的giftImpl
this.giftImpl = giftImpl;
}
@Override
public String toString() {
return this.getClass().getName()+"-----"+giftImpl.getClass().getName();
}
}
4.WildGift.java
public class WildGift extends Gift {
public WildGift(GiftImpl giftImpl) {
//调用父类的giftImpl
this.giftImpl = giftImpl;
}
@Override
public String toString() {
return this.getClass().getName()+"-----"+giftImpl.getClass().getName();
}
}
5.Flower.java
public class Flower extends GiftImpl {
}
6.Ring.java
public class Ring extends GiftImpl {
}
7.MM.java
public class MM {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
8.Boy.java
public class Boy {
private String name;
public void pursue(MM mm){
Gift gift = new WildGift(new Flower());
give(gift, mm);
System.out.println(gift);
}
public void give(Gift gift, MM mm) {
}
}
9.Test.java
public class Test {
@org.junit.Test
public void test() {
Boy b = new Boy();
b.pursue(new MM());
}
}
三、运行结果

Java-马士兵设计模式学习笔记-桥接模式的更多相关文章
- Java-马士兵设计模式学习笔记-命令模式
一.概述 命令模式 二.代码 1.Client.java public class Client { public void request(Server server){ server.addCom ...
- Java-马士兵设计模式学习笔记-工厂模式-抽象工厂模式
一.概述 1.抽象工厂:当情况是需要产生一系列产品,若需更换产品,则要求一系列产品一起换,且要控制一系列产品的产生过程,此时可考虑抽象工厂模式.例:小明装修屋子,把电视.冰箱都替换掉,他这次需要把电视 ...
- Java-马士兵设计模式学习笔记-工厂模式-简单工厂
一.概述 1.目标:要控制任意类型交通工具的生产模式 2.目标有两层意思(1)任意类型 (2)生产模式,所以对应的,要这两个层面上抽象(Movable,VehicleFactory),利用接口,实现多 ...
- Java-马士兵设计模式学习笔记-策略模式-模拟 Comparator接口
续上一篇 <Java 模拟 Comparable接口> 一.Teacher类及Student类的比较大小方式是不固定的,比如老师除了比较职称外,还可比较工龄大小,年龄大小等.则定义Com ...
- Java-马士兵设计模式学习笔记-迭代器模式-模仿Collectin ArrayList LinckedList
Java Iterator模式 Java Iterator模式, 模仿Collectin ArrayList LinckedList 一.有如下几个类 1.接口Collection.java 2.接口 ...
- Java-马士兵设计模式学习笔记-代理模式-聚合与继承方式比较
一.概述 1.目标:要在Tank的move()方法做时间代理及日志代理(可以设想以后还要增加很多代理处理),且代理间的顺序可活更换 2.思路: (1)聚合:代理类聚合了被代理类,且代理类及被代理类都实 ...
- Java-马士兵设计模式学习笔记-代理模式-动态代理 调用Proxy.newProxyInstance()
一.概述 1.目标:不自己写代理类,利用Proxy.newProxyInstance()动态生成 2.用到的知识点: (1)//编译源码,生成class,注意编译环境要换成jdk才有compiler, ...
- Java-马士兵设计模式学习笔记-建造者模式
一.概述 二.代码 1.Animal.java public interface Animal { public void bark(); } 2.Dog.java public class Dog ...
- Java-马士兵设计模式学习笔记-代理模式-动态代理 修改成可以任意修改代理逻辑
一.概述 1.目标:动态代理的代理逻辑可以任意修改 2.思路: (1)要把代理逻辑抽离,站在jvm的角度思考,应独立出InvocationHandler接口,并接收被代理的对象及方法作为参数invok ...
随机推荐
- 思维认知-读mindhacks杂记
1. 导语 无意中浏览知乎,搜索到了mindhacks.cn这个个人geek的网址.mindhacks博主本人是牛人程序员一枚,但他的博客主题涵盖的主要内容确是思维改变生活. 博客链接地址:http: ...
- NET Core中使用Redis
NET Core中使用Redis 注:本文提到的代码示例下载地址> https://code.msdn.microsoft.com/How-to-use-Redis-in-ASPNET-0d82 ...
- LintCode-Search for a Range
Given a sorted array of integers, find the starting and ending position of a given target value. You ...
- 文档对象模型(DOM)
文档对象模型(DOM) DOM可以将任何HTML或XML文档描绘成一个由多层节点构成的结构.节点分为几种不同的类型:文档型节点.元素节点.特性节点.注释节点等共有12种节点类型.DOM1级定义了 ...
- adb怎么判断是否有root权限,并更改system/app内容
一.首先判断root权限: adb root 结果: C:\signapp>adb root restarting adbd as root # 说明有root权限 ,若是adbd cannot ...
- 本地wordpress博客系统安装搭建实践
我们按步骤来, (1)安装XAMPP集成软件包 wordpress 的运行要求是在 php + MySQL + Apache的服务器环境,所以要先搭建该环境,我用的是XAMPP软件包,安装很方便. 下 ...
- Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum 离线+线段树
题目链接: http://codeforces.com/contest/703/problem/D D. Mishka and Interesting sum time limit per test ...
- LESS CSS 框架简介
使用 LESS 简化层叠样式表(CSS)的编写 LESS 是动态的样式表语言,通过简洁明了的语法定义,使编写 CSS 的工作变得非常简单.本文将通过实例,为大家介绍这一框架. 简介 CSS(层叠样式表 ...
- 如何理解JS项目
JS API(DOM/PhoneGap/Cordova/NodeJS/Library/Android/MongoDB....)最基础,可以看懂一行代码. -------> JS OOP, JS语 ...
- Sqli-labs less 55
Less-55 本关的sql语句为: $sql="SELECT * FROM security.users WHERE id=($id) LIMIT 0,1"; 其余和less54 ...