gpt4 book ai didi

c# - 向一组类添加行为

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:12 24 4
gpt4 key购买 nike

我定义了一个事件类:

Event

以及以下所有继承自 Event 的类:

SportEventType1 SportEventType2 SportEventType3 SportEventType4

现在我只会有 SportEvents,但我不知道将来是否会想要一些其他类型的 Activity ,甚至与 Sports 没有任何关系。

后面会想用Event中的信息绘制一些图形,绘制逻辑会有点复杂。但是,目前,我认为我不应该考虑绘图将如何完成,我相信如果绘图部分不作为 Event/SportEventX 类链的一个组成部分可能会更好。

我正在寻找这个问题的解决方案。我知道我可以让 Event 有一个实例变量(属性,对于 java 人群)指向某个东西作为 IDrawInterface,但这会使 Event 类“假设”它稍后将用于绘图。如果可能的话,我想让 Event 类忽略这一点。

谢谢!

最佳答案

您希望将绘图过程的知识保留在事件类层次结构之外是好的。

用 OO 语言处理这类事情的常用方法是 Visitor Pattern .

如果您实际上无法更改 Event 类以添加 Visitor 所需的 accept(Visitor v),您可以考虑使用 DecoratorAdapter .但是,让 accept 方法因子类而异可能会很痛苦。我会考虑更多,今晚可能会添加更多注释。现在,我得去上类了。

关于c# - 向一组类添加行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2584206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com