1 か所でしか使用されないクラス オブジェクトがある場合、プログラミングとアーキテクチャが貧弱であることはわかっています。しかし、私はまた、すべてが強力で、あまりにも多くのことを行うことができるオブジェクトを作成することについて警告されています. では、どうすればこれを分解できますか?これは私が言いたいことの例です - これは単なる例であるため、これらのことを文字通りに解釈しないでください.
とにかく、かなり複雑なオブジェクトを扱っています。このオブジェクトには多くの情報が格納され、データに対して多くの操作を実行できます。では、この物体を地球と呼びましょう。
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
これまでのところ十分に単純です。しかし、私はオブジェクトが実行できる可能性のある多くのことを続けることができました. そこで、物事が複雑になりすぎないようにするために、昼と夜の 2 つのオブジェクトを作成して、日中と夜間に発生する「アクティビティ」を分類しました (この 2 つは表示されていません)。これで、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
現在、これら 2 つのクラス (Day と Night)は、Planet クラス以外では使用されません。これは、この「親」クラス Planet のメソッドと属性を整理する良い方法ですか? 他にどうすれば同様にきちんと整理できますか?
リファクタリングについて読んだことがありますが、これは私の場合には役に立たないと思います。次のように Planet オブジェクトを呼び出せるというアイデアが気に入っていますEarth.Night.BlowUpMoon
。