我目前正在开发Google T-Rex之类的游戏(您可以在其中离线玩游戏)。在整个设计过程中,我尽最大努力遵循装饰器设计模式 (接口->抽象类->混凝土装饰器)
例如,一个具体的装饰器类Dinosaur
扩展了MoveableFigureBaseDecorator
,它也是也实现MoveableFigure
的基础装饰器类(因此Dinosaur类由一个MoveableFigure
对象组成)。
现在,混凝土装饰器Cloud
(见下文)应该同时具有StaticFigure
和MoveableFigure
的行为。但是问题是,即使方法已经在抽象装饰器StaticFigure
中实现,我也必须在接口StaticFigureBaseDecoator
中实现方法(此处未显示,但遵循与{{ 1}}。有没有一种方法可以解决这种代码冗余的问题?请注意MoveableFigureBaseDecoator
和MoveableFigureBaseDecoator
不能合并为一个的原因是,因为某些类应该只具有一个的行为,而不能具有另一个的行为
干杯。
StaticFigureBaseDecorator