2017-03-17 1 views
1

私のプログラム私はいくつかのクラスからなるguiとcoreパッケージを持ってMVCパターンを使用します。コアクラスとGuiパッケージ間の結合を減らすために、すべてのクラスはコアパッケージにあるFacadeクラスを調整することによってGuiパッケージと通信します。 Guiパッケージでは、アプリケーションの「フェーズ」に応じて他のJpanelsを追加するメインFrameクラスがあります。たとえば、LoginPanelは、ユーザーがログインした後にMenuPanelに置き換えられます。これらのパネルはすべて、JPanelを拡張する別のクラスとして宣言されています。
コアパッケージのFacadeコーディネートクラスと通信するGuiパッケージのいくつかのコーディネートクラスを使用する必要がありますか?この段階で、私のフレームまたはJpanelsはコアパッケージ内のコーディネイトクラスにメッセージを送ります。そしてGuiパッケージによるカップリングを減らすという良い考えがクラスを調整していること、それをフレームや他のJPanelsがコアクラスと通信するかどうかを考えます。MVC、Guiとコアパッケージ間のカップリングを減らす

+0

質問は実装の詳細に多くを依存しています。ある時点では、コードのさまざまな側面とどのようにやり取りしているか、お互いに話し合える必要があるか、あなたがしたいことは、それらを使用するクラスを変更する必要なく、それらのAPI /クラスの基本的な実装を変更することが可能です。達成したいことに応じて、さまざまなテクニックが使用できます。覚えておいて、Swingは既にMVCの(型の)ものですが、別のレイヤーで再びSwingをラップするのを止めるものは何もありません – MadProgrammer

答えて

0

このレスポンスはSwingの習慣ではなく、カップリングを回避して凝集力を高めるための一般的なアプローチです。カップリングを減らすために

、 あなたが代わりに任意のフレームワークをすることなく、標準的なJavaのあたりなど2つの戦略に従ってくださいする必要があります。

1. Code to Interfaces instead of Concrete implementations 
2. Try to implement Factory design pattern 
関連する問題