0

サブクラスを作成する責任をスーパークラスに委任できるのに、なぜ単純なファクトリパターンを使用するのですか?

4

1 に答える 1

2

通常、サブクラスはスーパークラスを認識していますが、スーパークラスはサブクラスについて何も知りません。これは、スーパークラスがサブクラスに依存しないようにするためです。依存関係が少ないと、コードの再利用が容易になります。

そのルールを破り、スーパークラスにサブクラスを認識させてそれらのインスタンスを作成させると便利な場合もありますが、それが不可能な場合もあります。たとえば、サードパーティライブラリの拡張機能を作成する場合、ライブラリ内のスーパークラスを編集することはできません。拡張する必要があります。これは、ライブラリが拡張機能に依存するのを防ぐため、優れた設計です。小規模なプロジェクトではそれほど重要ではないかもしれませんが、大規模なプロジェクトでは、不要な依存関係を回避することで、不要なクラスを大量にドラッグすることなくコードを再利用できます。

于 2013-02-08T16:30:54.097 に答える