2012-07-27 100 views
2

我遇到了將我的主表單/類拆分爲更小的部分的問題。將大類拆分爲更小的類

主要原因是因爲控制事件。我無法想象如何讓班級變得更小,因爲它包含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

使用你的榜樣,我會創造我自己的TreeView派生類,例如,MyTreeView,並把TreeView控件的代碼中就有多達有道理。例如,

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

這是一個比較O-O方法,因爲它封裝了特定的TreeView行爲到自己的類。

+0

感謝您的回答。由於我正在尋找更多的面向對象方法,這似乎是我應該做的。 – denied66 2012-07-27 16:05:24

1

如果你認爲你的班級太大,你有沒有看過部分班級?你的班級的大小不會改變,但它會改變你必須在任何時候處理的一個班級文件中的代碼量。

MSDN Link