Android 设计模式入门到精通之九:装饰者模式( Decorator Pattern)

版权声明:本文为博主原创文章,未经允许不得转载,如有问题,欢迎指正,谢谢! https://blog.csdn.net/cbk861110/article/details/88212242

设计模式项目源码请移步:https://github.com/caobaokang419/WeatherApp(欢迎Github Fork&Star,代码设计模式&框架设计实现不妥之处,请帮忙指正),谢谢!

装饰者模式(Decorator Pattern)

1. 概念

Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending functionality.

动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。能够在不修改任何底层代码的情况下,给你的或别人的对象赋予新的职责。

2. 应用场景

a. 需要扩展一个类的功能时;给一个类增加附加功能。
b. 动态地给一个类增加功能;并能动态地撤销。
c. 需要为一批的兄弟类进行改装或加装功能时。

3. 优点

a. 组件和装饰者可以独立发展,而不互相耦合。
b. 是继承关系的一个替代方案。若使用继承时子类非常多,会导致类爆炸,可用装饰者模式。--使用组合而非继承,可以在运行时动态地进行扩展
c. 可以动态地扩展一个实现类的功能。如要增加新的修饰条件,增加一个ConcreteDecorator即可。

4. 缺点

多层的装饰是比较复杂。

5. 代码实践:(TBD)

猜你喜欢

转载自blog.csdn.net/cbk861110/article/details/88212242