Actionscript 3 看不到装饰器和适配器之间的区别
我知道这两种设计模式,以及如何实现它们(适配器的对象和类实现),但我看不到何时使用每一种模式的明确区别Actionscript 3 看不到装饰器和适配器之间的区别,actionscript-3,oop,design-patterns,Actionscript 3,Oop,Design Patterns,我知道这两种设计模式,以及如何实现它们(适配器的对象和类实现),但我看不到何时使用每一种模式的明确区别 例如,在AS3中,如果我想包装一个MovieClip类并向其添加一个按钮功能,我应该使用Adapter还是Decorator设计模式?在两种模式的实现中,新对象通常“包装”原始对象,因此混淆它们是完全可以理解的 但它们有很多不同的目的 在适配器模式中,您在原始对象中具有正确的功能,但需要使用不同的接口 在Decorator模式中,您希望使用原始接口,但也希望添加功能 在您向MovieClip添
例如,在AS3中,如果我想包装一个MovieClip类并向其添加一个按钮功能,我应该使用Adapter还是Decorator设计模式?在两种模式的实现中,新对象通常“包装”原始对象,因此混淆它们是完全可以理解的 但它们有很多不同的目的 在适配器模式中,您在原始对象中具有正确的功能,但需要使用不同的接口 在Decorator模式中,您希望使用原始接口,但也希望添加功能
在您向
MovieClip
添加按钮功能的示例中,您可能需要的是装饰器。在这两种模式的实现中,新对象通常“包装”原始对象,因此混淆它们是完全可以理解的
但它们有很多不同的目的
在适配器模式中,您在原始对象中具有正确的功能,但需要使用不同的接口
在Decorator模式中,您希望使用原始接口,但也希望添加功能
在您将按钮功能添加到
MovieClip
的示例中,很可能您想要的是一个装饰器。如果您只想添加一些附加功能,请使用装饰器如果您只想添加一些附加功能,请使用装饰器。实际上,关于细节,我们不能说太多,因为我不太了解涉及的AS3类。这是一个很好的答案,我只是想知道如何用按钮功能包装MovieClip,并且仍然编码到MovieClip接口。对我来说,这样做更有意义:var-button:IButton=new-button(mySkin);//按钮是适配器而不是var按钮:MovieClip=新按钮编辑器(mySkin);我真的不能说太多的细节,因为我真的不知道涉及的AS3类。这是一个相当好的答案,我只是想知道我如何包装按钮功能的MovieClip,仍然是编码到MovieClip接口。对我来说,这样做更有意义:var-button:IButton=new-button(mySkin);//按钮是适配器而不是var按钮:MovieClip=新按钮编辑器(mySkin);