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