2017-02-05 10 views
0

У меня есть 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 

 Смежные вопросы

  • Нет связанных вопросов^_^