设计模式之装饰者模式
来源:互联网 发布:交流软件英文怎么说 编辑:程序博客网 时间:2024/06/08 03:26
英文叫Decorator Pattern,又叫装饰者模式。
装饰者模式是指在不继承,不改变原类的功能的情况下,动态地扩展一个对象的功能。它通过创建一个装饰对象,用来包裹被装饰的对象。
特点:
(1)装饰对象和被装饰对象实现相同的接口或有共同的超类。
(2) 被装饰对象对装饰对象有一个引用(reference)
(3) 装饰对象接受所有来自客户端的请求,它把这些请求转发给被装饰的对象。
(4) 装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设计中,通常是通过继承来实现对给定类的功能扩展。
例子:
1、接口
//同一个接口public interface MyInterface { public void paint();}
2、被装饰类
public class FatherClass implements MyInterface { //被装饰者 private MyInterface myInterface; public FatherClass(MyInterface myInterface){ this.myInterface = myInterface; } @Override public void paint() { //装饰者做的职责(可以在此处,将会在被装饰者独有的功能之前被调用) myInterface.paint(); //被装饰者做的职责 System.out.println("给画上好了颜色"); //装饰者做的职责(也可以在此处,将会在被装饰者独有的功能之后被调用) myInterface.paint(); }}
3、装饰者
public class SonClass implements MyInterface { @Override public void paint() { System.out.println("用铅笔画好了一幅画"); }}
4、测试
public class Main { public static void main(String[] ss){ SonClass s = new SonClass(); //s.paint(); FatherClass m = new FatherClass(s); m.paint(); }}
5、结果
用铅笔画好了一幅画给画上好了颜色
0 0
- 设计模式之装饰者设计模式
- 设计模式 之 装饰者
- 设计模式之装饰者模式
- 设计模式之装饰者模式
- 设计模式之Decorator(装饰者模式)
- 设计模式之五---装饰者模式
- 设计模式之---装饰者模式
- c++设计模式之装饰者模式
- Php设计模式之装饰者模式
- java设计模式之装饰者模式
- 设计模式之装饰者模式
- 【设计模式】之装饰者模式
- HeadFirst设计模式之装饰者模式
- c++设计模式之装饰者模式
- 设计模式之装饰者模式
- 设计模式之--装饰者模式
- 设计模式之装饰者模式
- 设计模式之装饰者模式
- 策略模式与状态模式
- 数据库_级联更新/级联删除_ON UPDATE CASCADE/ON DELETE CASCADE
- LeetCode--Binary Tree Traversal ( Inorder, Preorder, PostOrder)
- 编译预处理
- [HihoCoder]#1077 : RMQ问题再临-线段树
- 设计模式之装饰者模式
- Android初学之Handler
- 【Codeforces Round 362 (Div 2)D】【树的遍历 概率均分思想】Puzzles 兄弟节点的等概率遍历下 树的遍历每点期望时间戳
- 收集的博客和文章
- 英语 语法检查网站 小记
- CentOS里route命令详解
- 如何掌握Facebook自动人脸识别技术?
- android—DatePicker 和TimePicker显示日期以及使用TimePickerDialog,DatePickerDialog来专门实现时间选择对话框
- acm中java的简单使用