2012-08-02 77 views
1

對不起,長標題。以下是我經常遇到的窗體應用程序的示例情況。我的應用程序中的大部分代碼都圍繞着UI,所以恰巧我的大部分代碼都在主類(MainWindow)中。這是我打算如何分解我的代碼的一個比喻。當用戶執行操作時,我將不得不將壓縮文件寫入磁盤。所以它看起來像這樣。這是一個很好的做法。這只是嘗試更好地組織我的代碼。在一個類中只有共享的函數/方法是否是一種良好的習慣?

Public class MainForm 

    Private Sub TempButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TempButton.Click 
     Compression.CompressFile(fileStream) 
    End Sub 

End Class 


Public Class Compression 

    Private Sub New 
      'Private constructor 
    End Sub 

    Public Shared Sub CompressFile(ByVal inFile as stream) 

    End Sub 

    Public Shared Sub DeCompressFile(ByVal inFile as stream) 

    End Sub 

End Class 
+2

此問題可能更適合代碼審查論壇 – 2012-08-02 20:05:22

回答

2

這是一種常見的模式。

但是,這些函數應該在Module(或C#中的static class)中。

+0

如果它們與課程相關,將它們分開可以獲得什麼? – 2012-08-02 20:10:15

+0

@RobbieDee:與哪一類相關? – SLaks 2012-08-02 20:12:10

+0

如果共享函數僅與類相關,那麼根據定義,它們屬於類 - 不在單獨的模塊或靜態類中...... – 2012-08-02 20:13:57

0

如果類的方法不需要類對象的實例,那麼最好使方法成爲Shared。

+0

他已經讓他們成爲「Shared '。閱讀問題。 – SLaks 2012-08-02 20:12:26

+0

是的,我同意他/她:) :) – 2012-08-02 20:21:03

0

是不是隻有在一個類中共享函數/方法是一個好習慣?

不。通常開發者會調用這些幫助類。它看起來可以開始,但很快下線這些助手類會瘋狂增長,幷包含很多責任。這些輔助類本質上是靜態的。這些voOOO設計的SRP(單一責任原則)。我稱他們爲上帝階級。他們知道一切:)

你應該更喜歡有一個共同的基類或抽象類來代替。

+0

其實,這是非常普遍的,完全可以接受的。它被稱爲單身模式。 – 2012-08-02 20:33:03

+0

我知道。我是那些認爲單身人士邪惡的人之一:) – Ankush 2012-08-02 20:35:43

+1

問題是很多沒有經驗的編程人員在單身人士風格寫這樣的幫手類,這有助於任何人...... – 2012-08-02 20:38:13

相關問題