8

序章

MacApp Macintosh アプリケーション フレームワーク [App89] は、ファクトリ メソッドを Class* DoMakeClass() として定義する抽象操作を常に宣言します。ここで、Class は Product クラスです。

この引用は、Factory Method 設計パターンの命名規則に関する疑問に私を導きました。

期待

明確なファクトリ メソッドの名前付けを提供するベスト プラクティスや役立つ例が見られることを期待しています。

言語に依存する可能性があるため、最も一般的な一連の言語 (C#、Java、C++、および JavaScript) を考えてみましょう。

環境

コンテキストとして、次のクラス構造を検討することを提案します。Document と Application の 2 つの抽象クラスがあります。アプリケーションにはドキュメントのリストが含まれており、新しいドキュメントを作成できる必要があります。アプリケーションにはファクトリ メソッドがありCreateDocument()ます。

ここに画像の説明を入力

ありがとう

4

2 に答える 2

7

IMHO、メソッド名はコンテキストと作成されるオブジェクトの性質に依存します。おそらくこれが、明確な規則が見つからない理由です。たとえば、Create()メソッドはあるコンテキストでは適切であるかもしれませんが、別のコンテキストではより適切であるかもしれませんOpen()Build()

于 2013-08-11T12:17:00.663 に答える
0

この設計パターンに関連する強力な規則はありません。ベスト プラクティスは、" Do" または " Make" プレフィックスを使用して、仮想メソッドまたは抽象メソッドが埋め込まれていない一部の言語 (JavaScript など) でファクトリ メソッドをマークすることです。

于 2013-08-12T12:18:47.497 に答える