装饰者设计模式
来源:互联网 发布:网络开发公司怎么起步 编辑:程序博客网 时间:2024/06/05 01:12
装饰者模式原理及应用
一丶概述
装饰者模式是一种常见的设计模式,在java I/O设计中使用了大量的装饰者设计模式。装饰者设计模式是一种进行方法增强的思路,可以保证在原方法功能不变的基础上,对原方法进行功能上的增强。除了装饰者这种设计模式之外,通过继承和代理也可以完成对对象和方法的增强,这里详细的介绍装饰者设计模式的原理和经典的代码实现。
二丶原理
图2-1 装饰者设计模式的原理
在学习装饰者模式的的时候,需要明白三个对象:
1.接口规范,也是最原始的基类,该类里面定义了可能被增强的方法,无论是待增强对象还是已增强对象都需要实现该接口。
2.代增强对象,待增强对象就是我们需要装饰的对象,对该对象的功能的进行包装,达到升级的目的
3.已增强的对象,已增强的对象就是包装以后的对象。由于已增强的对象和代增强的对象实现了同一个接口,利用多态的原理,可以直接利用增强对象替代待增强对象。
三丶代码实现思路:
利用一个十分简单的例子,来说明装饰者模式的基本代码实现,明确三个角色:第一:接口规范(people,普通人,定义个一个周末的方法)
第二:待增强对象 (unmarry,未婚年轻人,实现一个周末方法,)
第三:已增强对象(marry,已婚年轻人,实现一个周末方法)
1.定义接口规范
public interfacepeople{public void weekend();}
2.定义待增强对象
public class unmarryimplements people{public void weekend(){System.out.println(“always游戏”);}}
3.定义已增强对象(已增强的对象必须设置成员变量指向待增强对象,同时必须实现一个带参数构造方法)
public class marry implements marry{public unmarrypeople ;public marry(unmarryunmarry){people =unmarry;}public voidweekend{//原有方法之前增强System.out.println(“女票说不能打游戏”);people.weekend();//原有方法之后增强System.out.println(“最后还是在打游戏”);}}
4.装饰者模式的增强使用:
people unMarry =new unmarry();System.out.println(“-----------单身之前周末------------”);umMarry.weekend();people Marry=new marry(unMarry);System.out.println(“-----------单身之后周末------------”);Marry.weekend();
阅读全文
3 0
- 装饰者设计模式
- 设计模式 - 装饰者
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- 装饰者设计模式
- bzoj 3192: [JLOI2013]删除物品
- Linux Kernel 4.9中BBR拥塞控制算法的优势
- mac上安装Protobuf
- 换个角度看回归——极大似然估计
- android 自定义键盘控件_身份证号码输入
- 装饰者设计模式
- Android监听用户打开系统相机进行录像行为
- Java笔记之形参个数可变的方法
- 如何版本化你的API?
- Arduino使用HC05蓝牙模块与手机连接
- 比较重量(网易笔试题)
- cmd中netstat 命令详解(四)
- 2017青岛网络赛1008 Chinese Zodiac
- woocommerce中将可变商品的下拉选项框改为淘宝类似的款式点选