装饰器模式的思路整理
在不改变原有对象的基础上,将新功能附加到原对象上,
例如生活中在拍照的基础上添加美颜,此功能就相当于一个装饰作用。
定义抽象接口做统一调用标准
package decorator;
/**
* @Auther: 苏察哈尔丶灿
* @Date: 2020/8/8 09:11
* @Slogan: 我自横刀向天笑,笑完我就去睡觉。
*/
public interface IComponent {
void operation();
}
【装饰器模式的思路整理】定义相机类
package decorator;
/**
* @Auther: 苏察哈尔丶灿
* @Date: 2020/8/8 09:12
* @Slogan: 我自横刀向天笑,笑完我就去睡觉。
*/
public class Photo implements IComponent {
@Override
public void operation() {
System.out.println("拍照");
}
}
定义装饰器类
package decorator;
/**
* @Auther: 苏察哈尔丶灿
* @Date: 2020/8/8 09:16
* @Slogan: 我自横刀向天笑,笑完我就去睡觉。
*/
public class Decorator implements IComponent{
private IComponent component;
public Decorator(IComponent component) {
this.component = component;
}@Override
public void operation() {
System.out.println("美颜");
component.operation();
}
}
测试用例
package decorator;
/**
* @Auther: 苏察哈尔丶灿
* @Date: 2020/8/7 16:55
* @Slogan: 我自横刀向天笑,笑完我就去睡觉。
*/
public class Test {
public static void main(String[] args) {
Decorator decorator = new Decorator(new Photo());
decorator.operation();
}
}
执行结果如下:
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 人生感悟记#环境仪器宋庆国成长记#072
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 视频转换器哪种好用()
- NeuVector 会是下一个爆款云原生安全神器吗()
- 操作系统|[译]从内部了解现代浏览器(1)
- 探索免费开源服务器tomcat的魅力
- 机器学习|机器学习 Andrew Ng《Machine Learning》课程笔记1
- 《机器学习实战》高清中文版PDF英文版PDF+源代码下载
- 机器学习一些简单笔记