我正在制作一个 Perl 网站,我将使用 Template Toolkit(用于视图)、用于数据库交互和业务逻辑(模型)的一大堆对象,但我想知道:控制器应该是 OO 吗?
我觉得他们应该这样做,只是为了保持一致性,但当我不以 OO 方式与控制器交互时,我也觉得这可能有点多余。控制器被更多地以一种即发即弃的方式调用。
感谢您的任何想法。
我正在制作一个 Perl 网站,我将使用 Template Toolkit(用于视图)、用于数据库交互和业务逻辑(模型)的一大堆对象,但我想知道:控制器应该是 OO 吗?
我觉得他们应该这样做,只是为了保持一致性,但当我不以 OO 方式与控制器交互时,我也觉得这可能有点多余。控制器被更多地以一种即发即弃的方式调用。
感谢您的任何想法。
在我看来,如果它感觉多余,你不应该使用它。
如果您在不需要它的项目中使用 OOP,那么它的缺点可能比优点多。
如果只是关于一致性,那就放弃它。有很多人(例如)在 c++ 中使用 stl,但以程序方式编写其余代码。如果您觉得 OOP 势不可挡,请选择您正在考虑使用的混合方法(在需要时使用 OOP,其余部分使用过程),只要您的代码不会因此而变得难以阅读。
是的,使控制器面向对象。您应该将它们作为对象进行交互。您可能希望稍后使用子类扩展或修改它们。很多人认为他们永远只需要一个控制器而陷入困境,因此他们没有计划未来的灵活性,从而将自己逼入绝境。
您需要查看Catalyst,这将使您不必担心控制器使用什么 OO 以及如何实现它。它并不完美,但如果您愿意,它是一条穿越设计荒野的人迹罕至的道路。