【总结】:
装饰器模型分为两部分
一:具体组件(componet)
二:装饰器(decrator)
调用: 装饰器会拥有一个抽象组件(
componet)对象,然后通过组件对象调用组件中方法。运行过程中,生成decrator对象,调用 componet方法。
【问题】:
【装饰器模型】和【Python中装饰器】的区别?
1. 二者是完全不同的东西
2. 功能相似: 对一个已有的模块做一些“修饰工作”。所谓的“修饰工作”就是想给现有的模块增加一些小修饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小修饰(小功能)进入到原有的模块中的代码中去。
(带修正): 个人理解,python中的装饰器类似Java中
面向切面的编程, 在原有代码功能外层增加一层封装,实现附加功能(例如,统计函数耗时)。 装饰器模型也是对原有代码进行扩展。
1. 装饰器模型UML图 (链接地址:
https://blog.csdn.net/sicofield/article/details/8646597)
![](https://i-blog.csdnimg.cn/blog_migrate/ca55d9b8423072a76eb23dd218942168.png)
2. Java中使用装饰器模型实例