1, 什么是装饰器

1.1  装饰针对的是某一对象, 它不会改变事物的本质,  比如一个人买了一顶帽子, 它本质还是一个人
1.2  比如一个Date 对象, 它本质还是一个Object, 这个太抽象了奥, = _ =
1.3  装饰器也可以实现增强本质事物, 也可以只在表面做一些花里胡哨的事
1.4  这个模式和桥接模式不同的就是, 装饰者和被装饰者是同一个抽象
1.5  我觉得我们学习技术不一定全部都是为了面试, 还是靠注重解决问题, 更好解决我们可能遇到的问题

2, 案例

public interface Operand {void upload(String file);
}// 被装饰者
public class OperandA implements Operand{@Overridepublic void upload(String file) {System.out.println("我是OperandA, 上传文件:" + file);try {Thread.sleep(30);} catch (Exception e) {e.printStackTrace();}}
}// 装饰者
public class OperandAPlus implements Operand{private Operand operand;public OperandAPlus(Operand operand) {this.operand = operand;}@Overridepublic void upload(String file) {System.out.println("这里可以打日志, 也可以做其他的");System.out.println("操作开始时间" + System.currentTimeMillis());operand.upload(file);System.out.println("操作结束时间" + System.currentTimeMillis());}
}public class Main {public static void main(String[] args) {Operand operand = new OperandAPlus(new OperandA());operand.upload("a.png");}
}//===================================
这里可以打日志, 也可以做其他的
操作开始时间1599184513041
我是OperandA, 上传文件:a.png
操作结束时间1599184513073Process finished with exit code 0

进阶学习(3.12) Operand Pattern 装饰器模式相关推荐

  1. 进阶学习(3.7) Flyweight Pattern 享元模式

    1, 前言 看完了设计模式发现, 设计模式是一种设计思想, 并不是某种规范, 要是让我去记设计模式的规范, 我是无法记住的, 也无法应用实际, 所以此后的设计模式, 都将注重思想理解,  学会举一反三 ...

  2. 设计模式学习----装饰器模式

    这两天本来是自在学习java collection Framework的Fail Fast底层机制,看到核心的部分时,突然意识到设计模式的问题,上大学到现在我还没有真正理解过设计模式的概念,于是用了大 ...

  3. 设计模式学习(三)——装饰器模式

    前言 距离上一次正儿八经地写随笔已经有一段时间了,虽然2月10号有一篇关于泛型的小记,但是其实只是简单地将自己的学习代码贴上来,为了方便后续使用时查阅,并没有多少文字和理解感悟.之所以在今天觉得有必要 ...

  4. decorator java_java_详解java装饰模式(Decorator Pattern),一、装饰器模式(Decorator Patter - phpStudy...

    详解java装饰模式(Decorator Pattern) 一.装饰器模式(Decorator Pattern) 允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式 ...

  5. python进阶(小白也能看懂)——装饰器浅谈(一)

    python进阶(小白也能看懂)--装饰器(一) 第四篇 文章目录 python进阶(小白也能看懂)--装饰器(一) 1.函数基础知识 例子1.1 例子1.2 例子1.3 例子1.4 2.不带参数的装 ...

  6. Java设计模式学习总结(11)——结构型模式之装饰器模式

    装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装.这种模式创建了一个装饰类,用来包装原 ...

  7. 装饰器模式(Decorator Pattern)

    23种设计模式完整教程 介绍 装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对 象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式 ...

  8. 零基础学习设计模式之装饰器模式(配套视频)

    零基础学习设计模式之装饰器模式 定义 在不改变目标结构的情况下,动态的给对象增加功能 举例 如房子装修.相片加相框等,都是装饰器模式. 基本组件 抽象构件(Component)角色:定义一个抽象接口以 ...

  9. 设计模式(十二)-装饰器模式(Decorator Pattern)——装饰边框与被饰物的一致性

    装饰器模式(Decorator Pattern)能不断的为对象添加装饰. Display.java package com.test.dp.Decorator.Sample;//抽象类,用于显示字符串 ...

最新文章

  1. 技嘉z68pds3刷中文bios_技嘉RTX 3080 VISION OC雪鹰显卡评测:内容创作、3A游戏两不误之选...
  2. 深度优先遍历 java
  3. java定时器只执行一次_面试阿里P6,却被MySQL难倒,二战阿里,挤进天猫团队(Java岗)...
  4. GeoTools计算线与面的交点
  5. Windows Phone 学习 Web搜索组件
  6. ipMonitorAdministratorGuide
  7. 深入学习D3JS:d3-array Statistics部分 d3.min, d3.max,d3.extent,d3.sum,d3.scan,d3.ascending,d3.deviation
  8. gromacs 中关于二级结构分析
  9. 1197:山区建小学
  10. Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机设备的各种固件信息如DeviceID或者SerialNumber等(C++)
  11. 梯度下降法求解方程的极值
  12. glob.glob() 函数的使用方法,超级详细
  13. mac系统,思科Cisco Anyconnect卸载之后,无法重新安装问题
  14. 打麻将技巧测试软件apk,学会这4招打麻将技巧,以后打麻将想不赢钱都难
  15. 多路选择器MUX总结-IC学习笔记(八)
  16. SYN010E型全国产铷原子钟
  17. 二十种题型带你复习《概率论与数理统计》得高分(高数叔)
  18. 对哈夫曼编码的输出 c语言,哈夫曼编码问题
  19. GTP科普——简单入门资料
  20. WSF操作系统抽象层学习笔记 (五)---事件处理及运行方式

热门文章

  1. 目标检测 RCNN算法详解
  2. idea provided和compile区别
  3. linux蓝色界面,让Ubuntu7.01开机登录显示蓝色与黑色
  4. 小武机器人怎么连不上网_电脑连不上网?原因在这里
  5. c#连接oracle11,C#连接Oracle 11g 无需安装Oracle客户端
  6. mysql索引4种结构_mysql索引:四种类型,两种方法
  7. Deployment详解
  8. Java 设计模式之单例模式
  9. 用c语言输出数组中最小值,C语言.由键盘输入10个整数存入数组,输出最大值、最小值及它们的位置信息.并将最大、最小值位置互换后,再...
  10. 用c语言合并两个链表,合并两个链表.