私はGUIから来るオブジェクトguiObject
を持っています。そのデータフィールドに基づいて、適切なクラスのdomainObject
をインスタンス化する必要があります。 DomainClassA
またはDomainClassB
のいずれかになります。OOP:この状況では、どのようなクラス設計が適切なはずですか?
DomainClassA
は、1つの整数コンストラクタパラメータintParamA
(guiObject.fieldA
から)を持ちます。
DomainClassB
には、1つの整数コンストラクタパラメータintParamB
(guiObject.fieldB
から)があります。 guiObject
から必要なフィールドをとり、私はAbstractFactory
を作った。この問題を解決するために
、GuiClass
から適切なフィールドを持つDomainClassAFactory
またはDomainClassBFactory
のいずれかをインスタンス化し、それをretuns。次に、これらのファクトリのいずれかcreate()
は、domainObject
を正しくインスタンス化します。
しかし、今、guiObject.fieldC
に応じて、私はdomainObject
をインスタンス化する前にintParamA
とintParamB
(1により、すなわち減少)を変更する必要があります。これを達成するためには、それぞれの異なるタイプの "パラメータ変更"のための別々のファクトリをそれぞれDomainClass
に対して作成し、その後、正しいファクトリを生成する別々の抽象ファクトリを作成する必要がありました。それは醜いと思われ、それは醜いように見えます。
正しいデザインは何ですか?
私はこの説明は非常に混乱を見つけます。 – mre