我一直在寻找smalltalk中装饰器模式的正确实现。有人可以请我提供参考吗?
编辑:我正在使用播放器和简单的碰撞对象构建游戏。我想使用装饰器在运行时构造相同碰撞对象的稍微不同版本(例如,一个爆炸,一个移动,一个同时移动,等等。)而不是子类化。
答案 0 :(得分:0)
您可能想看看Seaside和WADecoration
。虽然是一个很好的参考,但它可能不是很容易理解,因为Seaside使用了更多的模式。
答案 1 :(得分:0)
您可以使用装饰器模式通过在叶子实例之前将多个装饰链接在一起来建模多个行为的列表。
您可以提取更通用的装饰器方法,如下所示:
decorated
self decoration.
forward decorated.
该类需要一个实例方法,如:
initialise: forwarded
forward:=forwarded.