设计模式之装饰器模式
来源:互联网 发布:淘宝运营教材 编辑:程序博客网 时间:2024/06/18 16:22
概述:动态地给一个对象添加一些额外的职责或者行为
角色:
- Component 定义一个对象接口,可以给这些对象动态地添加职责
- ConcreteComponent 定义一个对象,可以给这个对象添加一些职责
- Decorator 维持一个指向Component对象的指针,并定义一个与Component接口一致的接口
- ConcreteDecorator 向组件添加职责
类图:
实现:
人类接口:
interface People { void eat();}
男人对象,实现人类接口
public class Man implements People { public void eat() { System.out.println("我是男人,我在吃饭"); }}
装饰抽象类:
public abstract class Decorator implements People{ protected People people; public void setPeople(People people){ this.people = people; } public void eat(){ people.eat(); }}
装饰具体实现类,添加了再吃一顿的行为:
public class ConDecorator extends Decorator { public void eat(){ super.eat(); eatAgain(); } public void eatAgain(){ System.out.println("我的度量大,我还得再吃一顿"); }}
测试:
public static void main(String[] args) { Decorator decorator = new ConDecorator(); People people = new Man(); decorator.setPeople(people); decorator.eat(); }
打印:
我是男人,我在吃饭
我的度量大,我还得再吃一顿
0 0
- 设计模式之装饰器
- 设计模式之装饰器
- 设计模式之装饰器
- 设计模式之-Decorator--装饰器模式
- 设计模式之装饰器模式
- 设计模式之三:装饰器模式
- 设计模式之: Decorator(装饰器)模式
- Java设计模式之装饰器模式
- 设计模式之装饰器模式
- 设计模式之十三:装饰器模式
- 设计模式之装饰器模式
- 设计模式 之 装饰器模式
- 设计模式之装饰器模式
- 设计模式之装饰器模式
- java设计模式之装饰器模式
- 设计模式之装饰器模式
- 设计模式学习之装饰器模式
- php设计模式之装饰器模式
- Jersey 入门(二)
- Error:Conflict with dependency 'com.google.code.findbugs:jsr305'
- 热更新 IK 分词使用方法
- MyBatis的sql特殊符号转义
- 11招教你做好 ERP 系统维护
- 设计模式之装饰器模式
- 学编程的一些感悟
- Java设计模式之命令模式
- 关于listview问题
- Go HSAIL and Other Language Standards Supported by GCC ( GCC 支持的Go HSAIL和其他语言标准 )
- linphone-获取sip:name@192.168.1.24中的name
- 其实你可以读懂OKHttp3的源码
- 关于在pdf文件中的中文字体显示
- AngularJS中的input指令