相关疑难解决方法(0)

胖模型,瘦控制器和MVC设计模式

我刚看了一篇博客文章,用银行类比来解释MVC.我有几个月使用MVC框架(CakePHP)进行Web应用程序开发的经验,所以我得到了基础知识,但我开始看到一个主题让我觉得我采用了一种有缺陷的方法来处理逻辑:

  • 胖子模特,瘦小的控制器
  • 尽可能在模型中保留尽可能多的业务逻辑

在我的应用程序中,模型是厌食症,控制器是肥胖的.我在控制器中有所有业务逻辑,除了模型中的关联和验证规则之外什么也没有.

通过我的控制器扫描,我现在可以识别出许多应该放在模型中的逻辑:

  • 该应用程序具有包含项目的列表,并且可以对项目进行排名.将列表按排名顺序排列的排序逻辑位于控制器中.
  • 同样,项目(项目模型)也有图像(图像模型).每个项目可能有一个默认图像(由items表中的image_id指定).当项目与其图像一起显示时,应首先显示默认图像.我有一个在控制器中执行此操作的逻辑.
  • 显示列表时,相关列表将显示在侧栏中.确定哪些列表相关的逻辑在控制器中.

现在问我的问题:

  1. 通过上面给出的示例,我是否正确地认为那些是属于模型的控制器中的逻辑实例?
  2. 应该进入模型的网络应用程序常见的其他逻辑领域是什么?
  3. 我确定发现这个问题并且改变我的设计模式是成功的一半,但即使我决定采用上面提到的那些例子并尝试将该逻辑移到模型中,我也不知道从哪里开始.任何人都可以通过在这里发布一些代码或链接到一些好的学习资源来指出我正确的方向吗?CakePHP特定的帮助会很棒,但我确信任何MVC都足够了.

model-view-controller controller cakephp model

75
推荐指数
2
解决办法
1万
查看次数