Java中的设计模式
来源:互联网 发布:网络红歌2015流行歌曲 编辑:程序博客网 时间:2024/05/16 11:21
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() { // 打电话之前先响铃 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!
阅读全文
2 0
- java中的设计模式
- java中的设计模式
- java 中的设计模式
- Java中的设计模式
- Java中的设计模式
- Java中的设计模式
- Java中的设计模式
- Java中的设计模式
- java中的设计模式
- Java中的设计模式
- Java中的设计模式
- Java中的设计模式
- Java中的设计模式
- Java中的设计模式
- JAVA中的设计模式
- JAVA中的设计模式
- JAVA中的设计模式
- java中的设计模式
- SQLite语法基础
- 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
- Kafka概述—消息队列
- java项目命名规范
- 最大乘积(Maximum Product, UVa 11059)
- Java中的设计模式
- 静态库之间的连接关系
- Etcd访问控制
- leetcode 560. Subarray Sum Equals K & leetcode 1. Two Sum
- 操作给定的二叉树,将其变换为源二叉树的镜像。
- 恭喜您成为 2017 年度 Microsoft MVP
- 创建一个基于SQLITE数据库的类
- HTMLday2旅途
- AngularJS-7-表单