Почему MVC так популярен?

Первоначально я собирался сделать этот вопрос более длинным, но мне кажется, что чем короче, тем лучше я понимаю.

  • Архитектурный шаблон MVC имеет 3 зависимости. Вид зависит от модели. Контроллер зависит от вида и модели. Модель является независимой.

  • Архитектурный шаблон Layers определяет N - 1 зависимостей, где N - количество слоев.

Для трех слоев: Model, View и Controller существует только 2 зависимости, в отличие от 3. с традиционным MVC.

View ---> Controller ---> Model

[Вид зависит от контроллера, контроллер зависит от модели]

Мне кажется, что этот стиль выполняет те же цели и создает более слабую связь. Почему этот стиль не более распространен? Действительно ли он выполняет те же цели?

Редактировать: Не ASP.NET MVC, а просто шаблон.

Что касается поста Грига:

  • Что касается насмешек, Layers все еще позволяет вам использовать Шаблон командного процессора для имитации нажатий кнопок, а также любого другого диапазона событий.
  • Изменения пользовательского интерфейса все еще очень просты, возможно, даже проще. В MVC Контроллер и Вид имеют тенденцию сцепляться. Слои создают строгое разделение. Оба уровня представляют собой черные ящики, которые могут варьироваться независимо друг от друга в реализации.
  • Контроллер имеет 0 зависимостей от View. Вид можно написать, public: int x; int y; }; класс B: общедоступный A {// x все еще общедоступен private: // ...

    Я хочу сделать public-член в базовом классе закрытым в производном классе, например:

    class A {
    public:
        int   x;
        int   y;
    };
    
    class B : public A {
        // x is still public
    private:
        // y is now private
        using y;
    };
    

    Но, очевидно, «using» не может быть использован таким образом. Есть ли способ сделать это в C ++?

    (я не могу использовать частное наследование, потому что есть другие члены и функции A, которые все еще должны быть открытыми.)

5
задан Colen 2 September 2010 в 01:21
поделиться