gpt4 book ai didi

c# - 有没有比使用层次结构更好的显示对象的方法?

转载 作者:行者123 更新时间:2023-11-30 17:25:05 25 4
gpt4 key购买 nike

我有这样的类层次结构:

        +-- VirtualNode
|
INode --+ +-- SiteNode
| |
+-- AbstractNode --+
|
+-- SiteSubNode

以及相应的 NodeCollection 类,该类构建于 INode 之上。为了显示 NodeCollection,我需要知道每个成员的最终类型。所以我需要这样的功能

foreach (INode n in myNodeCollection)
{
switch(n.GetType())
{
case(typeof(SiteNode)):
// Display n as SiteNode
}
}

现在,这确实不是一种面向对象的方式。 在您看来,是否有任何模式或推荐的方法来做同样的事情?

编辑
我已经想到在 INode 接口(interface)中添加一个 DisplayRender 方法。这具有将 View 耦合到模型的副作用,我真的很想避免这种情况。

最佳答案

你要找的是 visitor pattern ,我认为。

关于c# - 有没有比使用层次结构更好的显示对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/186649/

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