装饰模式与单例模式的区别

时间:2013-01-27 02:52:44

标签: ruby design-patterns singleton decorator

我试图了解Decorator和Singleton Pattern之间的区别。例如,在Ruby中如果我想实现Singleton模式,我可以使用单例类。但是当我读到维基百科中的Decorator模式时,我觉得我也会在这种情况下使用单例类。

2 个答案:

答案 0 :(得分:2)

Singleton模式确保在任何给定时间只存在一个类的实例(或有限数量的实例)。另一方面,Decorator模式是一种通过更改其“皮肤”来动态地向对象添加功能(职责)的机制。 Singleton是一种创造性的模式,而Decorator是一种结构模式。

他们俩之间真的没有多少共同之处,你的困惑的根源是什么?在使用Ruby的Singleton模块之前稍等一下,在考虑实现细节之前,最好直接查看原始的book并理解基本概念。

答案 1 :(得分:0)

Decorator是一个对象包装器,其意图是增强主题对象的行为。想法是装饰器对象可以用作包装对象的替代(必须遵守协议)。