私には 1 つのトップクラスがあります。たとえば、学校です。
そして、School クラスを拡張するいくつかのクラス。
通常、子クラスの 1 つを呼び出す必要がある場合は、次を使用します。
new Math('aaa')
、またはnew English(array('foo'))
;
すべての子クラスには異なるパラメーターがあります。
さて、何が良いですか:
1)Schoolクラスでファクトリメソッドを作成するため、次のようになります。
School::Factory('aaa')
Math('aaa')
指定されたパラメータに基づいてクラスを Factory() メソッドに返します
2)または単に各子クラスを直接呼び出すだけですか?
編集:私は2つの子クラスしか持っていません.私の問題は、これを行うことが本番コードで少し単純化する価値があるかどうかわからないことです. どのパラメーターが Factory メソッドに渡されたかを確認し、この情報に基づいて、これら 2 つのクラスのいずれかを呼び出します。どう思いますか?
一方では、より単純なコードを記述できるようになります。一方、新しい子クラスを追加する必要があるたびに (それを行う機会はほとんどありませんが)、Factory() メソッドも変更する必要があるため、ここに依存関係があります。