我在使用装饰器模式的我的类中遇到了问题.
当内部对象在调用其他对象时使用“this”引用时,会出现问题.这会导致来自接收“this”引用的对象的所有调用直接发送到内部对象,而不会通过外部第一个.
谢谢.
我在使用装饰器模式的我的类中遇到了问题.
当内部对象在调用其他对象时使用“this”引用时,会出现问题.这会导致来自接收“this”引用的对象的所有调用直接发送到内部对象,而不会通过外部第一个.
谢谢.
但是,最大的缺点是你仍然允许装饰者本身使用==,例如危害:
>很自然地被骗到它(identity == decorator而不是identity == decorator.getIdentity())
>默默地做错事(与运行时异常相比 – 好运调试)
例如,如果对象具有如下方法,则问题将不存在:
protected Object getIdentity() {
return this;
}
在哪个==运算符将被定义,所以包装器也可以包装包装对象的标识,而不是用它自己替换它.