【发布时间】:2012-12-19 19:50:36
【问题描述】:
从我之前的question 了解到,Rails 会为每个请求创建一个控制器实例。
我的问题是,因为这个主题与我正在从事的项目的设计有关:
Rails 为什么要创建一个新的实例
class SomeController < ApplicationController; end
处理每个传入的请求?为什么不直接创建单例对象并将请求转发给这个对象呢?这似乎更有效,因为我们不会浪费资源来分配和清理请求的对象?
【问题讨论】:
-
好问题,你应该问 DHH :) 但我认为主要的一点是绝对隔离一个环境到另一个环境。因为否则系统必须为分配逻辑花费更多的处理能力。恕我直言
-
因为在不存在踩踏其他请求数据的风险时更容易推理代码。
-
不出意外,但 Grails 似乎也在做同样的事情。