Java中的设计模式 - 装饰模式
2017-07-05 21:34
344 查看
Java中的设计模式 - 装饰模式
1 - 可以扩展一个类
2 - 可以动态的为一个对象增加功能,并且是可逆的(可以撤销)
3 - 缺点是会产生很多相似的对象
#
/** * Created by 谭健 2017年7月5日 21:18:31 * 打电话接口,具备打电话的功能 */ public interface Tel { void run(); }
#
/** * Iphone 是手机,实现打电话接口 */ public class Iphone implements Tel{ @Override public void run() { System.out.println("Hello, I am Ming!"); } }
#
/** * 装饰器:铃声 * 手机打电话没有接通之前要加个铃声装饰一下 * 这个是装饰打电话的,所以装饰器实现打电话接口 */ public class Bell implements Tel{ private Iphone iphone; // 装饰在手机上,需要持有手机实例 public Bell(Iphone iphone) { super(); this.iphone = iphone; } @Override public void run() { // 打 4000 电话之前先响铃 System.out.println("di di di! "); iphone.run(); } }
#
/** * 调用者打电话 */ public class Call { public static void main(String[] args) { // 没有装饰的手机打电话 System.out.println("没有装饰的手机打电话:"); Tel tel = new Iphone(); tel.run(); // 有装饰的手机打电话 System.out.println("有装饰的手机打电话:"); Tel telBell = new Bell(new Iphone()); telBell.run(); } }
输出结果
没有装饰的手机打电话: Hello, I am Ming! 有装饰的手机打电话: di di di! Hello, I am Ming!
相关文章推荐
- Java设计模式之装饰模式
- Java 设计模式 --装饰模式
- Java设计模式之二装饰模式
- java 设计模式学习笔记九 decorator装饰模式
- java IO包 与 装饰设计模式 浅谈
- java 设计模式 学习笔记(5) 装饰模式
- java设计模式之装饰模式
- java设计模式---------装饰模式
- Java设计模式之装饰模式
- java 设计模式学习笔记九 decorator装饰模式
- java设计模式之装饰模式(decorator)
- Java 设计模式-----装饰模式
- java设计模式:装饰器模式[Decorator]
- JAVA设计模式之装饰模式
- Java设计模式-----Decorator装饰模式
- java IO之装饰设计模式
- Java设计模式之装饰模式
- Java设计模式之装饰模式
- 浅谈 java 设计模式--装饰模式(Decorator pattern)
- java中装饰设计模式(decorator)