質問

私は、デザイン疑問を持っています。そこにいくつかの属性を共有するいくつかのコンポーネントがあり、GUIの条件(Windowsフォーム)とバックエンドの両方で他人に異なるアプリケーションを書くとき、どのように1は、理論的には、このに近づくでしょうか?

例えば、私は製品の4つの異なる型を持つアプリケーションを有します。すべての共有3つの異なるフィールドを、製品の詳細情報を入力するためのフォーム。これまでのところ、簡単に - そして、この基底クラスのうち4つの形を導き出す、基本クラスを持っています。しかし、2つの製品は、それらの両方で同じである特定の行動を共有する、と言います。もちろん、私は、メソッドを定義するインタフェースを持つことができ、これら2つの製品のエントリーフォームはこのインタフェースを実装する必要がありますが、インターフェイスにはデフォルト実装を提供しないので、それを行うには、廃棄物ではないでしょうか?私は各クラスの実装を提供しなければならない、それはまったく同じであれば、それは、コードの繰り返しになりますので。

私はもちろん、基本クラスでこのメソッドを入れて、そこから派生2つのフォームを持つことができます。私のフォームは、複数の共通の要素を共有し、他の要素を共有していない場合は、何が私の髪をリッピングすることなく、これを表現するsanest、最も論理的な方法だろうか?

正しい解決策はありません

他のヒント

なぜ2つの無関係なクラスは、あなたの基本クラスから直接派生して、共通の機能を持つ新しいクラスを作成し、基本クラスから派生し、残りの2つのクラスがその新しいクラスから継承している必要はありませ?

BaseClass
CommonClass : BaseClass
ClassA : BaseClass
ClassB : BaseClass
ClassC : CommonClass
ClassD : CommonClass
フォームのため、この可能性があります。

二つのクラスに共通の動作を取得するための一つの方法は、の含まれているの代わりにの継承のその行動の一員としてその行動に二つのクラスのためにあります「ユーザーコントロール」(コモンコントロールのすなわち再利用可能なコレクション)を定義する意味ます。

任意の特定のレイアウトずに伝えること

ハード。一般に、再利用の他、多くの場合、より柔軟な形態は、組成物の代わりに継承を行っています。実際にはコントロール階層は、組成物は行くことができますどれだけ強く示しています。たぶん、あなたは

の後にある特定の製品のレイアウトに基づいて組み立てられているカスタムコントロールにあなたのUIの部分を分離することができます
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top