[英]Which design pattern should I use to give different effects to an object dynamically?
我正在尝试为我的游戏项目提供可重用的工具。 如您所知,每个游戏的文字效果都更好。 这就是我想要做的。 动态创建文本效果。
情况;
弄清楚一切; 如果同时添加波浪效果和发光效果 ,我希望我的Text对象同时挥舞和发光 。
为了使此过程顺利进行,哪种设计模式是有益的 ? 如果您是我,您将如何解决这个问题?
笔记:
我认为您想研究Decorator模式。 这将允许您混合和匹配不同种类的效果。
装饰器模式可用于静态扩展(装饰)某个对象的功能,或者在某些情况下(在某些情况下,在运行时)独立于同一类的其他实例,前提是在设计时已完成一些基础工作。 这是通过设计一个包装原始类的新装饰器类来实现的。
在您的示例中,波浪效果和发光效果将是两个都扩展Text的不同装饰器类。 通过将Text对象包装在两个装饰器中,可以获得挥舞和发光的效果。
这几乎是显而易见的。 当然是装饰器模式。
如您所见,装饰器本身是从组件继承的,因此您可以装饰另一个装饰器。 实际上就是这样
new ShinyDecorator(new WaveDecorator(new TextComponent()));
您肯定可以设计自己的用法,因为模式只是提示要做什么,而不是如何做到。 您不必遵守该图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.