クラスオブジェクトが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つのオブジェクトを作成しています。ですから、私は更新された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つのクラス - 昼と夜は -
決しては惑星クラスの外で使用されます。これは、この「親」クラスのPlanetのメソッドと属性を整理するための良い方法ですか?それ以外はどうやって同様に整理できますか?
私はリファクタリングについて読んだことがありますが、これが私のケースに役立つとは思いません。私はこのようなPlanetオブジェクトを呼び出すことができるという考えが好きです:Earth.Night.BlowUpMoon
。
良いタイトル:-)。 –
私は、クラスがあまりにも強力になったり、あまりにも多くのことをする方法を知っている場合、それが実際の用語であると信じています。 –