私はGoF を参照しています。抽象的な工場とファクトリメソッドパターン。私はその目的を理解していますが、どちらのパターンもクライアントが「ファクトリオブジェクト」のインスタンスを取得する方法についての説明は省略しています。例えば、以下抽象工場パターンで、議論は、いくつかの他のフレームワークまたはドライバコードが既に階層を構築したと仮定し、そしてApplication
インスタンスが既にGUIFactory
(WinFactory
又はOSXFactory
いずれか)のインスタンスを保持していること工場を工場を作るには?
(ソース:https://en.wikipedia.org/wiki/Abstract_factory_pattern)
同様の議論は、ファクトリメソッドパターンの方に行きます。ディスカッションでは、外部の何かが既にMagicMazeGameをインスタンス化していると仮定しています。
(ソース:https://en.wikipedia.org/wiki/Factory_method_pattern)
は、なぜそれが私を気にしますか?これらのオブジェクト階層を構築するために別のパターンが必要なので、そのパターンは工場と多くの人が実際に意味するものです。
(ソース:ドメイン駆動設計、2003エリック・エヴァンス)は、基本的には工場出荷時のパターンは次のようである
これは私の意見では、どちらか抽象ファクトリーまたはファクトリメソッドは異なるパターンです。クライアントは要件を指定し、ファクトリはコンフィグレーションとコンテキストに基づいてとの要件に基づいてオブジェクトを作成します。仮想的な例として、クライアントは抽象的なConnection
オブジェクトを必要としていると指定し、ファクトリはシステムに構成されたデータベースドライバに応じてMySQLConnection
またはOracleConnection
を作成します。
だから、私の質問は以下のとおりです。
- 私が説明した最後のパターンのための用語がありますか? (私は研究を試みたが、用語工場は常にGoFの工場パターンを意味する)
- ファクトリを作成する工場はどのように命名されるべきですか?
GUIFactoryFactory
??? - または私はこのすべてについて完全に間違っていますか?
が、私はこの質問は物事に名前を付ける方法について尋ねたが、ユビキタス言語使用されていることを知っている(ソース:ドメイン駆動設計を、エリック・エヴァンス2003年と私完全に同意する)は、ソフトウェア工学における非常に重要です私の考えでは。