2017-02-05 12 views
0

共通のインターフェイスを実装する2つの派生オブジェクトがありますが、このインターフェイスをGUIに配置していますが、GUIはどのボタンが押されたかによって2つの共通インターフェイスリストを取ります。共通のインターフェイスへの抽象化

2つのリストには2つの個別の具象クラスが含まれていますが、インターフェイスとして抽象化されているため、1つのフォームで2つの異なるオブジェクトを変更できます。

私の問題は、それらを共通のインターフェイスとして保存している場合、後でプログラムで実際のオブジェクトがどのように見えるか、具体的なオブジェクトとして格納してインターフェイスに変換できるかどうかです彼らは私のフォームを使用し、それらを元に戻すことができます。

これはコーディングに関する質問よりも設計プログラムのほうが多いですが、これを見るデザインパターンはありますか?

+1

クラスとインターフェイスを投稿してください。それについて簡単に話すことができます。 –

答えて

0

コンクリートタイプにキャストするだけです。

例:

var foo = commonInterfaceObject as ConcreteType; 
if (foo != null) 
{ 
    // work with concrete type here 
} 

あなたが共通のインターフェイスのリストに戻ってそれを入れたい場合は、(ConcreteTypeインターフェイスを実装しているので)キャストバックする必要はありません。

例:

var interFaceList = new List<ICommonInterface>(); 

// add back 
interFaceList(foo); // foo is your concrete type 
関連する問題