我正在一个Perl的网站,我会使用模板工具包(用于查看),一大堆的DB交互和业务逻辑(模型)的对象,但我想知道:应控制器是OO ?我的MVC控制器应该是面向对象的吗?
为了保持一致性,我觉得他们应该这样做,但是当我不以OO方式与控制器交互时,它也感觉它可能有点多余。控制器被称为更多的是一种难以忘怀的方式。
感谢您的任何想法。
我正在一个Perl的网站,我会使用模板工具包(用于查看),一大堆的DB交互和业务逻辑(模型)的对象,但我想知道:应控制器是OO ?我的MVC控制器应该是面向对象的吗?
为了保持一致性,我觉得他们应该这样做,但是当我不以OO方式与控制器交互时,它也感觉它可能有点多余。控制器被称为更多的是一种难以忘怀的方式。
感谢您的任何想法。
是,使控制器面向对象的。你应该将它们作为对象进行交互。您可能希望稍后使用子类扩展或修改它们。很多人通过假设他们只需要一个控制器就会陷入麻烦,所以他们通过不计划未来的灵活性而将自己描绘成一个角落。
在我看来,如果觉得还原剂,你不应该使用它。
如果您在不需要它的项目上使用它,OOP可能比专业人士有更多的缺点。
如果它只是一致性刚落。有很多人(例如)在C++中使用stl,但以程序方式编写代码的其余部分。如果你觉得OOP压倒一切,那么你正在考虑使用混合的方法(在需要的地方使用OOP,其余的过程),只要你的代码不因此而难以阅读。
我不能完全肯定我同意这种说法。我是YAGNI的忠实粉丝。您可以随时更改。当然,这意味着更新很多调用代码,但这就是我们所做的不是吗?我不确定限制可能的重构工作,或者我们的代码应该是设计目标。 – 2009-09-08 00:05:53
这不是一个功能,所以YAGNI不适用。以这种方式或其他方式完成同样多的工作。你也可以用更灵活的方式来做。但是,如果你认为自己对未来有完美的认识,那就做你喜欢的事。我的经验是,没有人喜欢以前的设计,并且总是试图将某些东西引入其中。 – 2009-09-08 12:01:23