博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式-装饰者模式
阅读量:5064 次
发布时间:2019-06-12

本文共 1406 字,大约阅读时间需要 4 分钟。

结构图:

实现:

1 abstract public class Component {2     abstract public void operation();3 }
public class ConcreteComponent extends Component {    @Override    public void operation() {        System.out.println("具体操作");    }}
1 public class Decorator extends Component{ 2     protected Component component; 3      4     public void setComponent(Component c) 5     { 6         component = c; 7     } 8  9     @Override10     public void operation() {11         if (component != null)12             component.operation();13     }14 15 }
1 public class ConcreteDecoratorA extends Decorator{ 2  3     @Override 4     public void operation() { 5         super.operation(); 6          7         System.out.println("增加装饰A的操作"); 8     } 9     10 11 }
1 public class ConcreteDecoratorB extends Decorator{ 2  3     @Override 4     public void operation() { 5         super.operation(); 6          7         System.out.println("增加装饰B的操作"); 8     } 9     10 11 }
1 public class Client { 2     public static void main(String[] args) 3     { 4         ConcreteComponent cc = new ConcreteComponent(); 5         ConcreteDecoratorA cda = new ConcreteDecoratorA(); 6         ConcreteDecoratorB cdb = new ConcreteDecoratorB(); 7          8         cda.setComponent(cc); 9         cdb.setComponent(cda);10         cdb.operation();11         12     }13 }

应用场景:

适应于给一个对象动态添加额外的功能。

转载于:https://www.cnblogs.com/gatsbydhn/p/4998773.html

你可能感兴趣的文章
WampServer phpadmin apache You don't have permission to access
查看>>
解决sonarQube 'Unknown': sonar.projectKey
查看>>
ASPX页面弹窗的方法---javascript
查看>>
JavaScript和快速响应的用户界面
查看>>
winform控件跨线程委托
查看>>
利用subst命令将一个文件夹镜像成本地的一个磁盘
查看>>
NO 1,人生苦短,我学python之python+selenium自动化环境搭建
查看>>
206-反转链表
查看>>
Mybaits 插入数据返回主键ID
查看>>
PHP流程控制(一)
查看>>
判断是32位还是64位的CPU,CPU型号
查看>>
*[hackerrank]Algorithmic Crush
查看>>
PHP从零单排(十二)使用PHP连接MySQL数据库 分类: PHP ...
查看>>
vim折叠设置
查看>>
android6.0文件存储权限问题
查看>>
按键精灵如何批量复制文本,再往excel里面一次性粘贴?
查看>>
#include<algorithm>
查看>>
全排列 DFS
查看>>
手机万能遥控器制作教程
查看>>
Struts2 的工作原理
查看>>