私はstudentprojectに参加しており、Java EEを使用している会社の製品を開発しています。プロジェクトの "リードアーキテクト"として、私は、さらなる拡張のために柔軟にすべき良いデザインを作成する責任があります。デザイン上の問題(一般的なインテーフェイスの拡張)の手助け
背景情報:データソースとデータ操作を接続してその特定のデータを実行するための、可能性のあるドラッグアンドドロップGUIを備えたWebサイトを開発する必要があります。 GUIは一般的であり、今後の製品と統合することが可能でなければなりません。つまり、プレゼンテーション層の実装にはコードを記述できません。代わりに、すべての種類の製品で可能なデータ操作の種類を定義するためのインタフェースを使用します。しかしながら、各製品は、製品固有のデータ操作をスポーツすることもある(したがって、より多くの方法でインターフェースを拡張する)。
上記のシナリオで問題となっているのは、これらの「製品固有のデータ操作」をGUIに渡して、汎用インターフェースに加えて、これらのデータ操作アクション...
私は、この会社のより経験豊かなプログラマーの方々と議論して、この問題の共通の解決策があると言いました。つまり、「オブザーバーパターン」と呼ばれています。彼らはホワイトボードに[1]
のようなものを描き、第三者(getApplicationContext)に「登録」することが可能であり、製品固有のインターフェイスを伝えることができると説明しました。これは、その厄介な循環依存を取り除くための共通の問題です、と彼らは説明しました。
私は今観察者のパターンを見ていて、どのように機能しているのですか?そして、私はまだどのようにしてデザインの問題を解決するのか分かりません。私の特定のシナリオでどのようになるかを説明しようとする人がいるかもしれませんか?私はそれが "被験者"と "観察者"とどのように機能するかを理解するのに本当の問題はない。
ここでは、特定の製品のリファレンスを使用しているデザインのUML図を示します。これは望ましくないことであり、我々が取りたいものです。
は(多分私はこれがすべて間違ってました...)
私は申し訳ありませんが、私は新しいユーザーだと私は正しいものに画像を変更カント...ここでは、更新UMLダイアグラムへのリンクです:
質問があまりにも不明でしたか?私はこれがソフトウェアデザインの再発する問題であるべきだと思う...私は良い仕事をし、理解できなかったことを学び、できるだけ良い週をできるだけ早く実行できるようにしようとしている。 – Sebastian