我想创建现有对象的抽象表示。对于这个例子,我想包装 System.Windows.Forms.TreeNode 的功能。我首先创建了一个适配器,如下所示......
编辑:抽象的目的将允许我在我的应用程序中使用 ITreeNodeAdapter 而无需了解 TreeNode,在稍后阶段我可以实现不同的 ITreeNodeAdapter 并且应用程序仍然可以工作。我基本上想删除对 TreeNode 的依赖。
public interface ITreeNodeAdapter
{
string Title {get;set;}
void Add(ITreeNodeAdapter adapter);
}
public class TreeNodeAdapter : ITreeNodeAdapter
{
public AbstractTreeNode(TreeNode node)
{
this.Node = node;
}
private TreeNode Node {get;set;}
public string Title
{
get { return _node.Text; }
set { _node.Text = value; }
}
public void Add(ITreeNodeAdapter adapter)
{
// What should i do here?
var treeNodeAdapter = adapter as TreeNodeAdapter;
if(treeNodeAdapter != null)
{
this.Node.Nodes.Add(treeNodeAdapter.Node);
}
}
}
我在扩展类以接受子节点时遇到问题……我上面使用的方法感觉不是很好。知道如何改进吗?