装饰模式简介
来源:互联网 发布:手机淘宝怎么代购 编辑:程序博客网 时间:2024/06/08 17:16
(1)装饰模式定义
动态的给一个对象添加一些额外的职责
(2)应用装饰模式来解决的思路
透明的给一个对象增加功能,换句话说就是要给一个对象增加功能,但是不能让这个对象知道,也就是不能去改动这个对象。而实现了能够给一个对象透明的增加功能,自然就能够实现功能的动态组合,比如原来的对象有A功能,现在透明的给它增加了一个B功能,是不是就相当于动态组合了A和B功能呢。
在装饰模式的实现中,为了能够和原来使用被装饰对象的代码实现无缝结合,是通过定义一个抽象类,让这个类实现与被装饰对象相同的接口,然后在具体实现类里面,转调被装饰的对象,在转调的前后添加新的功能,这就实现了给被装饰对象增加功能,这个思路跟“对象组合”非常类似。在转调的时候,如果觉得被装饰的对象的功能不再需要了,还可以直接替换掉,也就是不再转调,而是在装饰对象里面完全全新的实现。
代码示例:
public interface Person{public void sayMsg();}//需要被装饰的对象public class Student implements Person{public void sayMsg(){System.out.println("Helloeveryone!");}} ////装饰器,实现相同的接口public class Decorator implements Person{//反调需要装饰的对象private Person person;public Decorator(Person person){this.person=person;}public void sayMsg(){//增加额外功能System.out.println("先记一下日志");person.sayMsg();System.out.println("然后再记录");}}//测试public class Test{public static void main(String[]args){Person student=new Decorator(new Student());//student=new Decorator(student);student.sayMsg();}}
0 0
- 装饰模式简介
- 装饰模式(Decorator)简介
- 装饰模式简介
- 装饰模式简介
- 装饰模式简介(Brief Introduction)
- 黑马程序员——装饰类设计模式简介
- Javascript中的装饰者模式以及AOP简介
- 装饰模式-撤销装饰
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- tomcat默认端口和应用
- Mysql用NaviCat导入.sql文件出错,...unkown engine= innodb......
- 【mina】对象序列化 mina通信
- 南阳acm 187-快速查找素数
- sql 存储过程命名规范
- 装饰模式简介
- 2016HDU多校联赛-HDU-5744-Keep On Movin(水题)
- 仿映客视频直播
- 树状数组
- 【多线程】java 两种创建线程的方法
- 通讯录之手动型Segue和自动型Segue
- 019——hibernate分页查询
- hosts
- Wolf and Rabbit