Мой опыт в основном ограничивается PHP, но насколько я знаю, Rails и ASP.NET MVC используют один и тот же путь.
Дело в том, что почти каждая веб-инфраструктура, с которой я когда-либо сталкивался, реализует действия контроллера как методы, например. create
, edit
, show
и т.д. Эти методы находятся в одном классе, таком как PostsController, но они почти никогда не имеют общего состояния или зависимостей, потому что только один из них вызывается во время всего запроса.
Вот почему мне этот подход кажется совершенно необоснованным, поскольку класс действует только как какое-то пространство имен. Увидеть примеры с большими кусками едва связанного кода действия контроллера, составляющего еще более крупные классы контроллеров, тоже не помогает. Тем не менее, множество фреймворков делают именно это, и лишь немногие используют класс для каждого действия.
Итак, вопрос в том, почему это так? Возможно, это субъективно, но я считаю, что я, возможно, пропустил важное преимущество этого подхода.