我設計在C#泛型樹數據結構,我在想,如果我在設計它具有所有這些接口/類:這是太多的繼承/實現?
public interface ITreeNode
{
object GenericValue { get; }
IEnumerable<ITreeNode> Children {get;}
}
public interface ITreeNode<T>:ITreeNode
{
T Value { get; }
}
public class TreeNode : ITreeNode
{
protected readonly LinkedList<ITreeNode> _children = new LinkedList<ITreeNode>();
protected object _value;
public object GenericValue
{
get { return _value; }
}
public IEnumerable<ITreeNode> Children
{
get { return _children; }
}
}
public class TreeNode<T> : TreeNode, ITreeNode<T>
{
public T Value
{
get { return (T)base._value; }
}
}
- 能否請您對改進/簡化的建議嗎?
- 你將如何實現二叉樹節點?使用另外2個接口和另外2個類,或者有更好的方法嗎?
需要什麼:我們需要存儲一些連接到其他樹的樹。所以,一棵樹上的葉子可以成爲另一棵樹的根。這就是爲什麼所有這些泛型和非泛型的原因
如果您沒有得到足夠有用的答案,有另一個StackExchange站點用於這些類型的問題:http://codereview.stackexchange.com/ – 2011-05-02 19:04:50
看起來不錯。您可能想要考慮它將如何用於您的業務應用程序,以確定是否需要靈活性。例如,如果您始終知道將要存儲的值的類型,請使用ITreeNode和TreeNode 。 –
mellamokb
2011-05-02 19:06:18
mellamokb,我添加了一些信息 – Jill 2011-05-02 19:11:27