将大班分成小班

时间:2012-07-27 15:22:43

标签: c# oop

我有一个问题将我的主要表单/类分成更小的部分。

主要原因是因为控制事件。我无法想象如何使类变小,因为它包含20个控件(至少),每个控件至少有3个事件。

甚至有些方法我实际上设法移动到一个单独的类,他们需要将控件作为方法参数发送,以便它们能够像第一时间那样工作。

一个小例子是

public static bool GroupContainsSnippet(TreeView tree, string group, string snippetName)
{
    bool result = false;

    if (tree.Nodes[group] != null)
    {
        result = tree.Nodes[group].Nodes.ContainsKey(snippetName);
    }

    return result;
}

出于某种原因,为了做那种事情,发送控件只是感觉很奇怪,所以我希望有更清晰的方法。

提前致谢。

2 个答案:

答案 0 :(得分:2)

使用您的示例,我将创建自己的TreeView派生类,例如MyTreeView,并将尽可能多的TreeView代码放入其中。例如,

public class MyTreeView : TreeView
{
    public bool GroupContainsSnippet(string group, string snippetName)
    {
        return Nodes[group] != null && Nodes[group].Nodes.ContainsKey(snippetName);
    }    
}

这是一种更为实用的方法,因为它将您的特定TreeView行为封装到自己的类中。

答案 1 :(得分:1)

如果你认为你的班级太大,你是否考虑过部分班级?您的类不会改变大小,但它会更改您必须在任何时间处理的一个类文件中的代码量。

MSDN Link