4

現在、「ビジネスオブジェクト」プロジェクトであるプロジェクトがあります。私たちの目標は、GUIとビジネスオブジェクトを明確に分離することです。ただし、私のプロジェクトにはSystem.Windows.Formsへの参照があり、これは私のプロジェクトの設計が不十分であることを誰にとっても大きな危険信号です。

私の問題は、「アクティブクエリビルダー」と呼ばれるサードパーティのコントロールを使用していることです。GUI、System.Windows.Forms.Controlのように、文字通り「コントロール」です。ただし、フォームのコントロールコレクションに追加されて、どこにも表示されることはありません。また、ビジネスオブジェクトのコア機能の多くを提供します。

とにかく、System.Windows.Formsへの参照なしで-サードパーティのコントロールを使用できず、BOがひどく壊れています。しかし、System.Windows.Formsへの参照は、コーディング方法が悪いためにできないと言われています。

そして、私は何をすべきかについて完全に途方に暮れています。

デザインパターンタイプの経験が豊富な人が解決策を提供できますか?

4

4 に答える 4

6

では、WindowsFormsを参照するライブラリがありますが、直接何も使用していませんか?あなたのBOプロジェクトはどのフォームもいじっていませんか?

それならあなたは大丈夫だと思います、参照は私がこれをしている理由を待つことを示す赤い旗です。しかし、レイヤーがまだ論理的に分離されている限り、私見は大丈夫です。

実行できることの1つは、クエリビルダーとの対話を処理する別のプロジェクトにこれを抽象化することです。したがって、BOプロジェクトは、このコントロールの使用方法を知っているQueryBuilderプロジェクトと連携します。

于 2009-04-22T15:32:35.077 に答える
3

ここでは間違っているかもしれませんが、System.Windows.Formsは単に.NET Frameworkの一部であり、実際にはGUIを構成していません。それはあなたが何も表示しないあなたが利用するかもしれない多くの便利な機能を持っているかもしれません。これを使うべきではないと言った人は誰でも、原則を誤解しているのではないかと思います。

n層アプリケーションを開発している場合、GUI-ビジネスロジック-データストアの分離を操作するのが一般的ですが、GUIは厳密には、対話を容易にするフレームワークではなく、対話を可能にするためにユーザーに提示されるユーザーインターフェイスです。

于 2009-04-22T15:33:12.453 に答える
2

私は Active Query Builder について漠然としか知りませんが、それは SQL クエリを作成するために使用される GUI コンポーネントではありませんか? そのようなコンポーネントがビジネスオブジェクトにどのように属しているかがまったくわかりません。

于 2009-04-22T15:34:05.447 に答える
1

必要なメソッドを備えたインターフェイスを実装するコントロールのラッパー クラスを作成できます。ビジネス オブジェクトは、そのインターフェースに依存することができます。これは、あらゆるもの (この場合はコントロール) によって実装できます。

この「コントロール」が UI に関係のない機能を持っているという懸念が生じます。気分が悪いだけです。

于 2009-04-22T15:34:11.420 に答える