0


シングルトンでファクトリパターンを使用する必要があります。My Factory クラスは、列挙型に応じて 2 つの異なるオブジェクトを作成します。

正しいオブジェクトを返す最良の方法は何ですか。

解決策 1: 工場での if-else 決定による:

if(enumType == "objectA") return new objectA()

解決策 2: enum クラスには return 関数があります。

enum ObjectType{ ObjectA{ .. return new ObjectA()..}}

thx、マイク

4

2 に答える 2

7

列挙型に関数を記述します。そうすれば、新しい列挙型を追加するときに、ファクトリ メソッドに句を追加することを忘れることはありません。

原則として、事実上すべてのソリューションについて、 if/などのシーケンスよりもポリモーフィズムとメソッドの実装を好みます。else ifエラーが発生しにくく、実行時ではなくコンパイル時に問題が検出されます。

于 2012-10-22T11:36:04.207 に答える
0

クラスのインスタンスを 2 つしか持てない場合、別のクラスをスーパークラスとして持つ必要がない限り、Enum を使用します。

于 2012-10-22T11:36:50.950 に答える