【发布时间】:2011-07-13 18:08:51
【问题描述】:
我知道当你有一个只在一个地方使用的类对象时,这是糟糕的编程和架构。但我也被警告过要创建一个功能强大且可以做太多事情的对象。那么我该如何分解呢?这是我的意思的一个例子 - 请不要把这些东西从字面上看,因为这只是一个例子。
无论如何,我正在处理一个相当复杂的对象。很多信息都存储在这个对象中,它可以对数据执行很多操作。所以,我们称这个物体为地球。
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
到目前为止已经足够简单了。但我可以继续处理对象可能执行的许多事情。因此,为了避免事情变得过于复杂,我通过创建另外两个对象来分解白天和晚上发生的“活动”:白天和夜晚(这两个没有显示)。所以现在我有一个更新的 Planet 类。
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
现在,这两个类 - Day 和 Night - 永远不会在 Planet 类之外使用。这是为这个“父”类Planet组织我的方法和属性的好方法吗?我还能如何整齐地组织类似的东西?
我读过关于重构的文章,但我认为这对我的情况没有帮助。我喜欢我可以像这样调用 Planet 对象的想法:Earth.Night.BlowUpMoon。
【问题讨论】:
-
我认为这是一个实际的术语,表示一个类变得太强大或知道如何做太多事情。
标签: vb.net oop god-object