VO类是否应包含域逻辑?

时间:2012-07-20 11:08:47

标签: php model-view-controller pdo dao

我一直在阅读这个关于DAO和VO类的网站,以便使用PHP和MVC。 http://www.sitecrafting.com/blog/php-patterns-part-ii/

我想知道应该在哪里放置域逻辑。 (仅处理对象数据,算法等的方法)

它应该在VO课程吗?或者我应该为域逻辑类创建另一个包?

它与数据库无关,所以我认为它不会被放在DAO类上。 感谢。

1 个答案:

答案 0 :(得分:0)

处理数据的逻辑应该在您的DAO提取数据并由您的VO“处理”或“格式化”数据之后进入模型,遵循您在问题中引用的模式。

这是一个可能适用于您的场景的可能结构:

----- DAO -----------> VO -------> Model ----> Controller --------> View
UsersDatabase ----> UsersVO ----> User ----> UserProfile ---> UserProfilePage

希望班级名称不言自明。在此示例中,与不处理接口的用户相关的任何逻辑都适合用户模型。

恕我直言,但这只是我的观点,除非您的模型非常大或者您有许多依赖相同数据“处理/格式化”逻辑的不相关模型,否则您将完全跳过VO并拥有DAO直接与您的模型沟通。