美文网首页Android设计模式:入门到精通
Android 设计模式入门到精通之九:装饰者模式( Decor

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

作者: 编程家园 | 来源:发表于2020-02-04 10:58 被阅读0次

装饰者模式(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. 应用场景 --比如BufferedInputStream(InputStream&OutStream相关的派生类)

a. 需要扩展一个类的功能时;给一个类增加附加功能。

b. 动态地给一个类增加功能;并能动态地撤销。

c. 需要为一批的兄弟类进行改装或加装功能时。

3. 优点

a. 组件和装饰者可以独立发展,而不互相耦合。

b. 是继承关系的一个替代方案。若使用继承时子类非常多,会导致类爆炸,可用装饰者模式。--使用组合而非继承,可以在运行时动态地进行扩展

c. 可以动态地扩展一个实现类的功能。如要增加新的修饰条件,增加一个ConcreteDecorator即可。

4. 缺点

多层的装饰是比较复杂。

5. 代码实践:

JDK: 

•java.io.BufferedInputStream(InputStream)

•java.io.DataInputStream(InputStream)

•java.io.BufferedOutputStream(OutputStream)

•java.util.zip.ZipOutputStream(OutputStream)

•java.util.Collections#checked[List|Map|Set|SortedSet|SortedMap]()

Android: TBD

相关文章

网友评论

    本文标题:Android 设计模式入门到精通之九:装饰者模式( Decor

    本文链接:https://www.haomeiwen.com/subject/hbxrxhtx.html