1

ストラテジーを使用することは、if / elseをファクトリーに延期しているように見えるのはなぜですか?ストラテジーを使用すると、ファクトリはインスタンス化する具体的なクラスを把握する必要はありません。また、if / elseによって把握する必要はありませんか?

どういうわけかマップ/リストを使用し、キーをインスタンス化するクラスの名前にし、ファクトリを使用するクラスに名前を渡す別のオプションはありますか?

4

1 に答える 1

1

Map \ Listは、ファクトリパターンの実装です。

ストラテジーパターンを使用すると、結合されたコードが作成されるため、if\elseよりも優れています。Factory + Startegyを使用すると、クライアントコードに触れることなく処理のアルゴリズムを拡張でき、コードを動的に(再コンパイルせずに)構成する方法が増えます。

于 2010-09-22T18:43:12.023 に答える