0

最近のインタビューで、私はこの質問に直面しました。私はそれをグーグルで検索しましたが、「これは作成パターンであり、集中型オブジェクトを作成できます」というこの回答を除いて、結論を出すことができませんでした。私がこれを説明したとき、彼は私に尋ねましたが、「サーバークラスのクライアントクラスでオブジェクトを直接作成できるのは何ですか。なぜ抽象ファクトリを使用する必要があるのですか?」

4

1 に答える 1

1

NoviceProgrammer が言ったように、Abstract Factoryデザイン パターンを使用すると、結果オブジェクトを使用するクライアントは、そのインターフェイスしか認識しないため、実際の結果オブジェクトから独立したままになります。したがって、新しいオブジェクト タイプを Factory 側で生成する必要がある場合、インターフェイスが同じままである限り、クライアントはそれを処理するために何かを変更する必要はありません。

ウィキペディアの例に関して、アプリケーションで使用するために「LinuxButton」クラスを追加する必要があると想像してください。次に、汎用の「GUIFactory」インターフェースを実装する「LinuxFactory」という名前の別のファクトリーを作成します。このように、「Application」クラスは、「LinuxButton」の新しい具象実装を使用するために何も変更する必要はありません。ファクトリはすべての仕事を行うものであり、「アプリケーション」は変更する必要はありません。これを数百のクラスにスケーリングすると、その価値がわかります。

私が助けてくれることを願っています!

于 2013-11-25T06:27:55.907 に答える