【发布时间】:2014-06-02 06:08:06
【问题描述】:
这又是一个概念性问题(参见上一篇文章Is there a difference between Object and Models in PHP/CodeIgniter?)
这是 PHP 上的 CodeIgniter(一个 MVC 框架)。
我正在尝试找出实现这个示例的最佳(= 实用且合理的原则)方法。
在我的示例中,在数据库模式中,由于我在 codeigniter 上使用 tank_auth,因此已自动为我创建了一个名为“users”的表(通过 tank_auth)。所以这个用户表代表了我的所有用户在我的图书借阅图书馆应用程序中的任何角色。
一个人可以同时担任多个角色(贷方、作者、图书管理员、经理等)。我最初开始认为我应该有一个“people_model”(作为 MVC 中的 M),但现在我想知道这样做是否更好:
应该有一个“贷方”模型和一个“作者”模型和一个“图书馆员”模型等。我很难解释为什么它有意义,但这可能是因为 OOP 原则“让课程成为焦点”做一件事(单一职责)”。
那么这个例子就是那个原则所指的吗?我的“图书管理员”类(模型)应该只有图书管理员功能。任何更多的东西都只是离得太远了一步,一般来说,拥有一个“人”类来完成“真人”会做的所有事情太抽象了?......我在正确的轨道上吗?我将不得不做一些重新设计......但这就是学习曲线。
【问题讨论】:
标签: php codeigniter oop