Factory と Command Pattern を実装することで、いくつかの設計上の問題を解決できます。それで、パフォーマンスによると、どちらがより良いですか?
2 に答える
工場とコマンドパターンの両方でいくつかの問題をどのように解決できるかわかりません。それらは、まったく異なる種類の問題を解決します。
Abstract Factory は、製品ファミリ間で簡単に切り替えることができ、オブジェクトの一貫性を強制できる方法でオブジェクトの作成を処理します (つまり、誤って異なる製品ファミリを混在させないでください)。製品ファミリが 1 つしかない場合でも、作成されたオブジェクトの管理が容易な柔軟なシステムが作成されます。
ファクトリ メソッドは、オブジェクトの作成をサブクラスに延期します。これは、基本クラスがどの具象クラスをインスタンス化するかを認識していないためです。ここで、基本クラスはいつオブジェクトを作成するかを知っていますが、どの具象オブジェクトを作成するかは知りません。
Command はリクエストをカプセル化するために使用されるため、リクエストを他のオブジェクトと同じように処理できます。たとえば、リクエストをパラメータとして別のメソッド/オブジェクトに渡したり、リクエストをキューに入れたり、リクエストを再利用したりできます。オブジェクトの作成は扱いません。 .
私が非常に間違っていない限り、それらは別々の問題を攻撃する別々のパターンです。これらのパターンの詳細については、GoF による Design PatternsおよびHead First Design Pattersを参照してください。
両方が当てはまる状況がいくつかあることを考えると (実際にはどれも思い浮かびません)、どちらも「より良い」とは思わないでしょう。最善の解決策は、問題、システム全体、チームなどによって異なります。一方が「より優れている」場合、もう一方は単純に破棄できます。