设计模式--装饰者模式
来源:互联网 发布:php能做爬虫吗 编辑:程序博客网 时间:2024/06/06 03:13
1 动态地给一个对象添加一些额外的职位,就增加功能来说,装饰模式比生成子类更加灵活。
创建接口,定义要装饰的操作:
整体结构:
public interface Component { public void operation();}
被装饰的操作:
public class ConcreteComponent implements Component { @Override public void operation() { // TODO Auto-generated method stub System.out.println("具体对象的操作"); }}
装饰抽象类:
public abstract class Decorator implements Component { private Component component; @Override public void operation() { // TODO Auto-generated method stub if(component !=null){ component.operation(); } } public void setComponent(Component component) { this.component = component; }}
具体装饰对象A的操作:
public class ConcreteDecoratorA extends Decorator { @Override public void operation() { // TODO Auto-generated method stub super.operation(); System.out.println("具体装饰对象A的操作"); }}
具体装饰对象B的操作:
public class ConcreteDecoratorB extends Decorator { @Override public void operation() { // TODO Auto-generated method stub super.operation(); System.out.println("具体装饰对象B的操作"); }}
测试:
public class TextMain { public static void main(String[] args) { // TODO Auto-generated method stub ConcreteComponent concreteComponent=new ConcreteComponent(); ConcreteDecoratorA concreteDecoratorA=new ConcreteDecoratorA(); ConcreteDecoratorB concreteDecoratorB=new ConcreteDecoratorB(); concreteDecoratorA.setComponent(concreteComponent); concreteDecoratorB.setComponent(concreteDecoratorA); concreteDecoratorB.operation(); }}
装饰者模式通过引入第抽象类和具体操作类来完成对具体对象的操作。摒弃之前通过添加子类的方式来扩展的效果。
阅读全文
0 0
- 设计模式-装饰者模式
- 设计模式:装饰者模式
- 设计模式:装饰者模式
- 设计模式: 装饰者模式
- 设计模式--装饰者模式
- 设计模式-装饰者模式
- 设计模式--装饰者模式
- 设计模式-装饰者模式
- 设计模式------------装饰者模式
- 设计模式--装饰者模式
- 设计模式:装饰者模式
- 设计模式-装饰者模式
- 设计模式-装饰者模式
- 设计模式-装饰者模式
- 设计模式--装饰者模式
- 【设计模式】装饰者模式
- 设计模式---装饰者模式
- 设计模式 装饰者模式
- Tetris tutorial in C++ platform independent focused in game logic for beginners
- C语言结构体,位段
- JS语言核心——词法结构
- vim编辑文件时当光标出现在注释行后按回车键怎么可以做到不现新注释行?
- 求排列组合的小技巧
- 设计模式--装饰者模式
- Qt 中关于 QWidget 添加菜单栏 菜单栏可以 随窗口大小伸缩
- Animation 动画类型
- IDEA的安装破解教程和使用说明(二)
- Golang 优化之路——HTTP长连接
- Android 计时器
- AppScan-Authentication Bypass Using HTTP Verb Tampering
- C++程序员学Java系列之八:随机数类Random
- java 正则使用笔记