【发布时间】:2020-08-13 16:40:36
【问题描述】:
我想实现一个基本的 Graph 结构,以后可以将其扩展到更具体的 Graph 类型(对话、行为...),每个都需要从 Node 基类派生的特定类型的节点。
我的 Graph 基类现在看起来像这样
public abstract class Graph {
private Dictionary<Node, List<Node>> adjList;
public abstract void AddNode(Node node);
public abstract void RemoveNode(Node node);
public abstract void AddEdge(Node node, Node destNode);
public abstract void RemoveEdge(Node node, Node destNode);
}
我的问题是我必须在这些方法的实现中进行类型检查,以防止用户将 DialogueNode 添加到 QuestGraph。有什么设计模式可以解决这个问题吗?还是我应该不使用基类并多次编写一些代码?
【问题讨论】:
标签: java inheritance design-patterns polymorphism typing