业务规则指定与模型测试实践
1. 引入业务规则
在指定了消息模型的基本行为后,需要将一些业务规则引入应用程序。Jamis Buck 在其文章中建议将业务逻辑下沉到模型,让视图和控制器操作保持简洁,这样有助于遵循单一职责原则,使控制器和视图专注于应用逻辑,模型专注于业务逻辑。
当前消息应用可无限制发送消息,但客户希望用户通过订阅来限制每月可发送的消息数量。假设这些新需求已在 Cucumber 场景中明确,接下来要编写代码来满足这些需求。
原应用的 MessagesController 中的 create 方法如下:
def create
@message = Message.new(params[:message])
if @message.save
flash[:notice] = "The message was saved successfully."
redirect_to :action => "index"
else
render :action => "new"
end
end
此设计中, MessagesController 负责构建并保存消息。为增加功能复杂度,可将此职责下沉到模型。修改后的 create 方法示例如下:
# For discussion purposes only
def create
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



