对po、dao、domain、service的理解
来源:5-5 资金账户模块-账户表数据库访问层写入和更新的编码实践
梦飞_0002
2020-03-27
1、po:其实就是将数据库表字段映射到一个struct中,作为最基础的数据结构
2、dao:就是对po的一些增删改查的操作,php四层代码架构中的model其实就
是po、dao的结合体
3、service:这门课程中的service更像是定义除表字段外的其他数据结构,比如
数据传输对象DTO,不涉及任何业务逻辑,而这一点在php的四层代码架构
中,service主要处理业务逻辑
4、domain:这门课程里的domain更像是php四层代码架构中的service,主
要处理业务逻辑
对于service和domain的理解,不知道我这么理解,是否准确,请老师指正,
1回答
-
枫荇
2020-03-27
同学您好,po和dao理解是准确的,service和domain理解上有误:
domain:领域对象,包括了业务数据和业务行为,和java中提到的OO一致,通常domain是有状态的。领域对象用来处理业务逻辑,但只处理领域内业务逻辑,不做跨领域业务逻辑,比如订单和库存是2个领域,那么在订单下单逻辑中只包括订单相关的逻辑处理,不包括扣库存的逻辑。
service:是一种泛化的服务对象,通常用来处理泛化的业务逻辑,不同的分层架构中,其service职责不一样;在三层架构中,service中包含了领域逻辑和应用业务逻辑;在四层架构中,service处理应用业务逻辑,通常是多领域业务组合或编排,以及跨领域的逻辑处理,比如下单后发送扣库存消息,比如下单后发送短信通知等逻辑。但也会根据微服务架构的不同,service职责也会有一些变化,只要满足单一职责面向对象设计就是一种好的实践。
072020-03-27
相似问题