装饰者模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰者模式相关的知识,希望对你有一定的参考价值。
装饰者模式
装饰,是女人经常需要做的事情,也是男人经常需要等待的事情。
装饰后的女人,变得漂亮、好看了,但“她还是她”
这是装饰者模式的特性
动态添加职责和功能,换句话讲,在女子长成之后才去修饰她,而非生下来即如此
但在程序语言中再怎么面向对象,它始终也是计算机语言,所以为了实现装饰前后还是同个类型的缘故,这些装饰的主体和饰品都必须是同一个类型下的子类
通常是通过
Decorator d = new Decorator(people); // people 和 d 都是同一个父类下的子类
熟悉io对象的人应该知晓,这实际上就是个递归持有对象实例的方式
实际上就是a、b、c都是继承于e,而a中包含b的私有变量,b中包含c的私有变量
这样就形成一个递归链,导致对于a的操作可以间接作用到b,再到c
因而我们可以保有这三者的特性,进行组合操作
abstract class Super { protected Super instance; } class A extend Super { public A(Super super) { instance = super; } } class B extend Super { public B(Super super) { instance = super; } } class C extend Super { public C(Super super) { instance = super; } } public class Test { public static void main(String[] args) { C c = new C(null); B b = new B(c); Super a = new A(b);
}
}
以上是关于装饰者模式的主要内容,如果未能解决你的问题,请参考以下文章