装饰者设计模式

来源:互联网 发布:网络开发公司怎么起步 编辑:程序博客网 时间: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();


原创粉丝点击