我知道,只有在一個地方纔能使用類對象時,它是糟糕的編程和體系結構。但是我也被警告過要創建一個功能強大且可以做得太多的對象。那麼我該如何解決這個問題呢?這裏是我的意思的一個例子 - 請不要把這些東西當作字面意思,因爲這只是一個例子。如何防止上帝對象?
無論如何,我有一個對象,我正在使用這是相當複雜的。很多信息都存儲在這個對象中,它可以對數據執行很多操作。所以,讓我們稱這個對象爲地球。
Public Class Planet
Private _population As UInteger = 0
Public ReadOnly Property Population() As UInteger
Get
Return _population
End Get
End Property
Public Overridable Sub CreatePerson(Optional ByVal numberOfPeople As Integer = 1)
_population += numberOfPeople
End Sub
End Class
到目前爲止還不夠簡單。但是我可以繼續研究這個對象可能執行的許多事情。因此,爲了防止事情變得過於複雜,我打破了白天和夜間發生的「活動」,創建了另外兩個對象:日夜(這兩個都沒有顯示)。所以現在我有一個更新的星球類。
Public Class Planet
Private _population As UInteger = 0
Private _day As New Day
Private _night As New Night
Public ReadOnly Property Day() As Day
Get
Return _day
End Get
End Property
Public ReadOnly Property Night() As Night
Get
Return _night
End Get
End Property
Public ReadOnly Property Population() As UInteger
Get
Return _population
End Get
End Property
Public Overridable Sub CreatePerson(Optional ByVal numberOfPeople As Integer = 1)
_population += numberOfPeople
End Sub
End Class
現在,這兩個類 - 日夜 - 將永遠行星類之外使用。這是一個很好的方式來組織我的方法和這個「父」類Planet的屬性嗎?我會怎樣整齊地組織類似的?
我讀過關於重構,但我不認爲這有助於我的情況。我喜歡這樣的想法,我可以調用一個Planet對象,如下所示:Earth.Night.BlowUpMoon
。
好標題:-)。 –
我相信這是一個實際的術語,當一個班級變得太強大或知道如何做得太多時。 –