25

ちょっとした背景: 科学モデルを扱うためのライブラリ/フレームワークを構築しています。モデルが実装しなければならない操作を定義するインターフェースがありますModelが、これはかなり最小限です。つまり、インターフェースは、モデル実装者の観点からModelモデルのコントラクトを定義します。

ModelInfoこのフレームワークは、モデルに関する他の機能を多数追加しますが、現在、クライアント コードは、ModelHost、、 などの他の多数のクラスを使用してその機能にアクセスする必要がありますModelInstance

このフレームワークを使用するアプリケーションでは、モデルを実行するこのすべてのメカニズムを実際に処理する必要はありません。オブジェクトを使用します。(このパターンは既にフレームワークの他の部分に適用されており、成功しています。)

ここで質問があります: 既に interfaceModelあるとすると、ファサード クラスの適切な名前は何でしょうか? Modelインターフェースはフレームワークとモデル実装の間 の契約であり、新しいクラスはフレームワークとクライアント アプリケーションの間の契約を定義します。

または、より一般的に: ライブラリまたはフレームワークによって提供される抽象化がある場合、抽象化への「プロバイダー」と「消費者」のインターフェイスを明確に識別するために、抽象化の「2 つの側面」にどのように名前を付けることができますか?

(問題があれば、このプロジェクトでは Java 6 を使用しています。)

4

5 に答える 5

16

これは些細なことのように思えますが...ModelFacadeファサードクラスのクラス名として「」を使用することを検討しましたか?インターフェイスにすでに名前が付けられていることを示すドキュメントでは、Model比較的簡単に見え、使用しているデザインパターンが非常に明確になっていると思います。

于 2011-07-18T18:22:23.030 に答える
2

私たちのチーム内の議論では、別のオプションが提案されました: 既存のModelインターフェイスの名前を別のものに変更し、新しい façade を呼び出すだけModelです。実際、それらはModel別々のパッケージに存在するため、今すぐ両方を呼び出すことができます。(私は、異なる名前空間にある同じ名前のクラスのファンではありませんが。)

于 2011-07-18T19:22:13.780 に答える
2

*Provider と *Consumer はどうですか? ご質問の中でご自身でおっしゃっていたと思います。おそらく *Producer と *Consumer の方が適しているのではないでしょうか?

于 2011-07-18T18:25:37.530 に答える
0

PureMVC は名前付きのシングルトンを使用し、ApplicationFacadeすべてのモデルを次のようなメソッドで登録しますregisterProxyIFacade

于 2011-07-18T18:23:22.887 に答える