ほとんどのプロジェクトは個別のファクトリ クラスを作成しているので、たとえば、User クラスと UserFactory クラスがあります。これは、ファクトリが CreateUser メソッド以外のメソッドを必要とする場合に意味がありますが、これらのファクトリのほとんどには、コンストラクタと CreateUser メソッド (またはファクトリが作成するものと同等のもの) しかありません。User.create()
では、静的メソッドをクラスに追加するだけでなく、別のファクトリ クラスを作成する理由が他にあるのでしょうか?
質問する
436 次
2 に答える
1
私の経験では、実装を頻繁に変更する場合、特にテストケースの場合は、主に個別のファクトリクラスが使用されます。たとえば、 User にデータベースにヒットするメソッドがあり、単体テストには「遅すぎる」場合、データベースを使用しない MockUser が必要になる場合があります。次に、実際のアプリ用の RealUserFactory と単体テスト用の MockUserFactory を作成できます。
しかし、軍事仕様のアプリの SecurityClearedUser から別のアプリの AnyOldUser に変更したいという現実世界の例があるかもしれません。したがって、config ファイルは、Factory のクラス (MilitaryUserFactory や AnyOldFactory など) を宣言します。
もちろん、 User.create() は、構成ファイルから作成する実際のクラスを読み取ることができます。したがって、実際には、それほど違いがあるかどうかはわかりません。物事がどのように設定されているかによって異なります。
于 2012-09-14T01:22:33.843 に答える