MVC: Контроллер и просмотр связи (C #) - PullRequest
0 голосов
/ 28 ноября 2011

Я пытаюсь построить программу, используя модель-представление-контроллер.

В частности:

У меня есть менеджер состояний, который обрабатывает (инициализация, загрузка, запуск, выгрузка и т. Д. ...из) набор MVC, по одному за раз.

В каждом наборе один контроллер содержит ссылку на соответствующую модель и виды.

Каждая модель, вид и контроллер являются производнымииз родительского класса.(т.е. абстрактная модель, абстрактный вид, абстрактный контроллер).Это позволяет мне сохранять большую часть процесса в родительских классах, а не добавлять дублирующийся код в каждый конкретный набор mvc, который будет обрабатывать менеджер состояний.

Теперь идея состоит в том, чтобы каждый View вызывал свои методы Controller,который, в свою очередь, будет вызывать свои методы Model, и любые возникающие изменения в Model будут передаваться обратно в View через контроллер.

Вот где я застрял. Единственное знание каждого представления и модели контроллера - это то, что определено в его родительском классе. Что, конечно, не включает в себя очень специфические методы, которые понадобятся дочернему контроллеру для правильной обработки представлений имодель.

Есть какие-нибудь идеи, как мне с этим справиться?

-Спасибо.

1 Ответ

0 голосов
/ 28 ноября 2011

Вы, вероятно, ближе к MVP, чем MVC.В любом случае, обойти вашу проблему можно с помощью интерфейсов и обобщений.

Пусть ваши абстрактные классы используют универсальный интерфейс:

public abstract class BaseView<TController>
{
    protected TController Controller { get; private set; }

    protected BaseView(TController controller)
    {
       Controller = controller;
    }
}

Что-то на этот счет.

Тогда ваш конкретный контроллер просто реализует соответствующий интерфейс.

...