装饰者设计模式

                   装饰者模式原理及应用

一丶概述

装饰者模式是一种常见的设计模式,在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();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值