繁体   English   中英

我应该使用哪种设计模式动态地给对象带来不同的效果?

[英]Which design pattern should I use to give different effects to an object dynamically?

我正在尝试为我的游戏项目提供可重用的工具。 如您所知,每个游戏的文字效果都更好。 这就是我想要做的。 动态创建文本效果。

情况;

  • 每个文本都是我项目中的一个对象
  • 我想为此文本对象添加一些效果也许不止一个

弄清楚一切; 如果同时添加波浪效果发光效果 ,我希望我的Text对象同时挥舞和发光

为了使此过程顺利进行,哪种设计模式是有益的 如果您是我,您将如何解决这个问题?

笔记:

  • 我们正在谈论C#语言。
  • 添加效果是更改此textObject的位置,对齐,纹理属性,阴影或斜面。
  • 我们可以认为此textObject就像一幅图像,并且我们对其应用了一些效果(过滤器)。

我认为您想研究Decorator模式。 这将允许您混合和匹配不同种类的效果。

装饰器模式可用于静态扩展(装饰)某个对象的功能,或者在某些情况下(在某些情况下,在运行时)独立于同一类的其他实例,前提是在设计时已完成一些基础工作。 这是通过设计一个包装原始类的新装饰器类来实现的。

在您的示例中,波浪效果和发光效果将是两个都扩展Text的不同装饰器类。 通过将Text对象包装在两个装饰器中,可以获得挥舞和发光的效果。

这几乎是显而易见的。 当然是装饰器模式。

在此处输入图片说明

如您所见,装饰器本身是从组件继承的,因此您可以装饰另一个装饰器。 实际上就是这样

new ShinyDecorator(new WaveDecorator(new TextComponent()));

您肯定可以设计自己的用法,因为模式只是提示要做什么,而不是如何做到。 您不必遵守该图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM