装饰模式的装饰者与适配者模式的区别

装饰 模式 区别
格水物獭致知  
网友的回答
小韵子39

1.关于新职责:适配器也可以在转换时增加新的职责,但主要目的不在此。装版饰者模式主要是权给被装饰者增加新职责的。
2.关于原接口:适配器模式是用新接口来调用原接口,原接口对新系统是不可见或者说不可用的。装饰者模式原封不动的使用原接口,系统对装饰的对象也通过原接口来完成使用。(增加新接口的装饰者模式可以认为是其变种--“半透明”装饰者)
3.关于其包裹的对象:适配器是知道被适配者的详细情况的(就是那个类或那个接口)。装饰者只知道其接口是什么,至于其具体类型(是基类还是其他派生类)只有在运行期间才知道。

吃要吃好的

Proxy,代理模式:为其他对象提供一种代理以控制对这个对象的访问。 例如:经典的体现在Spring AOP切面中,Spring中利用了俩种代理类型。 其实,代理也分为静态和动态,但是我们一般常用动态,因为静态代理秀不起来 Adapter,适配器模式:将一类...

孤山幽灵

3》这样不同的饮料就很容易知道它的价格。 代码 复制代码 代码如下: <?php abstract class Beverage{ public $_name; abstract public unction Cost(); } // 被装饰者类 cla...

LiaoL童鞋

Decorator就是动态地给对象增添行为 这里DarkRoast,Mocha,Whip都是实现了Beverage接口的Decorator Beverage beverage2 = new DarkRoast();//beverage2是DarkRoast beverage2 = new Mocha(beverage2);//给beverage2增添了Mocha的行为 beverage2...2

fairyzhangyanting

推荐看一下:工业出版 郑阿奇的《秘笈-设计模式那点事》!里面含有相似设计模式的对比分析和java源码实现,实例通俗易懂,模式分析 静态类图看了一目了然!希望对你有帮助!1

莫小木木木

装饰者模式就是动态的给对象添加一些职责。就功能来说装饰着模式相对与生成子类更... java.util中set就是,hashset和collection的源码很容易看出,他们是装饰者模式的构造。