我是一名试图研究 CakePHP 的 Java 程序员——目前我在应用程序结构/设计方面遇到问题。我不明白将应用程序的核心逻辑放在哪里。
当我在 JavaEE 中开发时,常见的方法如下所示:
模型类是表示数据实体(产品、人员等)的简单 bean——主要类似于带有 getter/setter 的数据结构;
控制器类是足够简单的类,它们聚合必要的数据并将它们注入专用的视图模板,然后发送给用户;
DAO(DataAccessObject)或存储库类是可以将实体加载和存储到数据库中的类;
服务类通常是包含某些业务逻辑方法的单例——这些方法由控制器、其他服务或计划操作调用,另一方面,它们本身调用 DAO / Repository 方法来获取或修改数据。
例如,如果我有实体Person
,Product
并且Order
,当用户选择某些产品并单击“将其放入我的购物车/购物篮”new Order
时,Person
应该创建它并将Product
其添加到此Order
(我们可能会检查这Person
不是坏债人并且Product
存在在商店等) - 所有这些工作都是在OrderService
某些控制器调用的方法中执行的。
通常使用某种 IOC(控制反转),以便所有服务和控制器都链接到必要的服务等。
现在我对这一切是如何在 CakePHP 中完成的有些困惑。我应该把这个业务逻辑等放在哪里?