我刚刚读了一个blog post,它用一个银行类比来解释MVC。我有几个月的使用MVC框架(CakePHP)进行web应用程序开发的经验,所以我掌握了基础知识,但我开始看到一个主题,它让我认为我在逻辑上采取了一种有缺陷的方法:
在我的应用中,模型是厌食症的,控制器是肥胖的。我将所有的业务逻辑都放在了控制器中,除了模型中的关联和验证规则之外,什么也没有。
浏览一下我的控制器,我现在可以识别出许多可能应该放在模型中的逻辑:
现在来回答我的问题:
发布于 2009-01-21 23:03:18
要给出“正确”的答案有点困难,因为其中一些涉及框架的细节(无论您正在使用的是哪种框架)。
至少在CakePHP方面:
处理数据或数据操作的
发布于 2009-01-21 22:33:17
我至少使用了这两个“测试”来检查我的逻辑是否正确:
1)如果我写一个unittest,很容易只创建一个“真正的”对象来进行测试(=你在生产中使用的对象),而不包括许多其他的对象,可能除了一些值对象。同时需要一个实际的模型对象和一个实际的控制器对象来进行测试可能是您需要移动功能的信号。
2)问自己这个问题:如果我添加了另一种使用这些类的方法,我需要以一种几乎是复制-粘贴的方式来复制功能吗?这也可能是移动该功能的一个很好的理由。
同样有趣的是:http://www.martinfowler.com/bliki/AnemicDomainModel.html
https://stackoverflow.com/questions/467113
复制相似问题