2013-08-11 19 views
5

はじめファクトリメソッドの命名規則とは何ですか?

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

この見積もりは、ファクトリメソッドの設計パターンの命名規則に関する質問につながりました。

期待

私は、ベストプラクティスや明確なファクトリメソッドの命名を提供役立つ例を、見ることを期待。

言語に依存する可能性があるので、C#、Java、C++、JavaScriptという最も一般的な言語のセットを考えてみましょう。

私は以下のクラス構造を検討することを提案しているコンテキストのコンテキスト

。私たちは2つの抽象クラスを持っています:ドキュメントとアプリケーション。アプリケーションにはドキュメントのリストが含まれており、新しいドキュメントを作成することができます。アプリケーションにはファクトリメソッドCreateDocument()があります。

enter image description here

おかげ

+1

もしあれば、規約はおそらく言語に依存します。 – assylias

+0

私はC#、C++、JavaScriptに興味があります。私は命名規則について何かを見つけようとしましたが、私の質問にはただ1つ(MacAppについて)しか置かれませんでした。 – Warlock

答えて

4

私見では、メソッド名は、コンテキストと作成されるオブジェクトの性質に依存しています。たぶんこれがあなたが明確な慣習を見つけられなかった理由です。たとえば、Create()メソッドはあるコンテキストで正しく、一方でOpen()またはBuild()が他のコンテキストではより適切かもしれません。

+0

私は同意し+1します。コンテキストはキング*ドメイン駆動設計を適用*から引用されています。 –

+0

命名規則は存在するかどうかを示します。コンテキストやプログラミング言語に依存すべきではありません。 – Warlock

+0

私は分かりません。なぜ命名規則が必要ですか? 'CreateDocument()'は名前のついた、自己文書化したファクトリメソッドであるようです。 –

0

このデザインパターンに関連する厳密な規則はありません。ベストプラクティスは、仮想メソッドや抽象メソッド(JavaScriptなど)が組み込まれていない、いくつかの言語でファクトリメソッドをマークするために「Do」または「Make」という接頭辞を使用することです。

関連する問題