这确实是关于MVC标准和效率的问题。
我有一个用户控制器,想要从我的会话模型中检索数据。我有两种方法可以做到这一点:
我可以从用户控制器中直接从Session模型请求数据。 (UserController ---> SessionModel)
OR
我可以要求SessionController向SessionModel询问数据。 (UserController ---> SessionController ---> SessionModel)。
这两种方式似乎都有效,而且我不确定这两种方式是否是一种'不正确'的方式来做我想做的事情。然而,第二种选择似乎效率低下且毫无意义。它似乎只是添加另一个层来检索数据。但是,我不确定第一个选项是否违反了MVC的规则。
对此的任何建议都将非常感激。
答案 0 :(得分:1)
最佳做法是将模型直接调用到控制器中。所以你应该在UserController中调用SessionModel。通过这种方式,循环非常简短有效。
在我看来,最好的方法是在您使用框架(例如Symphony)时引入另一层“服务”,您可以使用dependency injection模式来解决此类问题。