2

在为一些较小的站点使用了一些 PHP 框架(例如 Codeigniter 和 Kohana)之后,我开始怀疑 MVC 是否仍然适用于较大的项目,如果是的话,需要采取哪些预防措施来维护干净的代码。较大的网站使用哪些做法来防止这种情况发生?Amazon 或 Flickr 的代码是否使用 MVC 或它的某种变体?有没有针对特定问题的指南,向您展示如何最好地为大型项目实施 MVC?

-- 切线 --

在当前使用 Kohana 的项目中,我开始质疑我的模型应该扮演什么角色。很多时候,模型只能描述我正在尝试构建的对象的一小部分。即,需要一个用户对象,所以我使用我的Users_Model 从Users 表中提取我的用户。但是每个用户的库存中也有几个项目,所以我还需要使用 Users_Inventory_Model。但是,每个库存项目也有与之关联的其他表,依此类推,直到我发现在我的控制器中构建单个用户需要我访问多个模型。现在,想象一下在许多不同的控制器中执行此操作,突然间我发现自己有凌乱和冗余的代码以及非常胖的控制器。

这让我想到,也许我应该拥有处理大部分繁重工作的库。这样,我可以拥有一个用户库,让它加载我所有相关的用户数据并运行大部分逻辑,例如更新、删除等。这是大多数 MVC 项目发展的方式吗?让库与模型进行大部分交互,而控制器调用库并为视图准备数据?无论如何,这只是我对 MVC 的疑问之一,我无法在网上找到答案。

4

1 回答 1

5

事实上,它适用于所有这些 MVP 和 MVC 真正闪耀的大型项目。所有软件设计模式都是“创建”的(除了建立通用词汇表)来处理软件的复杂性。因此,如果使用得当,MVC 将对您在大型项目中大有帮助。

与小型应用程序相比,这些应用程序可以通过仅鼠标的方法一起破解,但支持起来是一场噩梦,因为没有适当的分离,也没有足够的SOLID 。

于 2009-07-23T15:03:01.013 回答