2010-03-04 68 views
3

只是关于MVC开发中最佳实践的一个简短问题。codeigniter最佳实践 - 多个模型

假设我有两个控制器(cont1,cont2),每个控制器都使用一个单独的模型model1 & model2。

所有文件都很复杂,模型包含数十种方法。

说,我完成了第一个控制器的开发,并且正在处理第二个控制器的工作。我需要在model2中创建一个与model1中的方法完全相同的方法。这只是一个很小的方法,例如,可以获得某种类别的列表。

什么是最好的工作方式 - 我应该复制方法并将其包含在我的模型2中,还是应该从模型1中检索它?

合理的事情就是,从MODEL1得到它,但我不知道这是否会影响到执行时间,因为它会加载两个模型..

我将不胜感激一些反馈

感谢 ķ

回答

3

加载第二个模型将不会对执行时间产生显着影响。这可能是一条路。

此外,每个模型应该封装特定“对象”的数据逻辑。你可以将每个模型想象成一个数据库表。所以你可能不想在两个不同的地方使用相同的方法 - 如果你这样做,你可能要考虑创建一个插件。

1

也许你真正需要的是第三种模式。如果你有一种方法被用于许多/所有的模型,它确实可能是一个独特的数据集,它将保证它自己的注意力。此外,您可以防止加载多个“大型”模型,而是拥有1个大型和1个小型模型。

0

我遇到了同样的情况。我所做的是在每个模型中加载代码化对象,参考文献。然后我可以加载其他模型,库,帮手,甚至配置项到我的模型中。它有助于保持模型代码不在控制器中,我认为这是最佳实践。始终保持干爽(不要重复自己)。