摘自:开源it1) 模型必须是一个对象(类) 2) 模型对象的属性变化后,必须持久化的(保存的),则是:实体对象:商品对象、订单对象 3) 模型对象的属性变化后,不要持久化的,则是:业务服务对象、基础服务对象、助手对象:翻页对象、数据库连接对象、订单商品验证类 4) 为了简单,很多项目将业务写在控制里面,将模型主要作为实体对象用:存取 思考1个用户注册场景中的业务 里面的每个业务都可以写1个服务对象(类),至少写到1个方法里面 每个业务对象的变更 每个服务对象可以存/取多个实体对象 创建订单场景 检查预订单商品:是否能卖(存在/ 库存 / 优惠活动时间 ) 检查预订单商品:该用户能不能买(级别/能否参与活动/ 达到活动上线 ) 检查订单本身 优惠策略,该用户使用的是否正确 检查订单 本身的 地址/联系/支付方式/配送方式 等是否正确 创建订单总价,并验证:根据优惠/邮费/保价/发票等 创建订单 处理用户使用的优惠 //处理商品库存 处理用户购物车 支付订单场景 //检查订单是否可以支付:订单时间 //检查订单商品是否可以支付:是否能卖(存在/ 库存 / 优惠活动时间 ) //检查预订单商品:该用户能不能买(级别/能否参与活动/ 达到活动上线 ) 创建支付参数 提交支付接口 订单支付成功场景 检查回调数据真实性 修改订单状态 处理商品库存 处理积分赠送等 5) 4色原型分析法 PartPlaceThing(PPT 绿):基础实体:商品、人员、部门、岗位、地点、固定资产 Description(DES 蓝色):基础实体的分类:商品分类、部门类型、岗位层级、人员类型、地点区域、物品分类 Role(黄):角色:在特定的业务场合中,增加基础实体的业务能力(方法)。使用装饰者模式 MomentInterval(MI 红):业务场景。如:产生订单、加入购物车、部门移动、岗位移动、员工离职、产品销售、出库 MomentInteval(MIDetail 红):实体:业务场景中的明细记录:订单明细、销售明细、入库明细、出库明细 Role大概有四种实现方式: 1、使用动态代理,动态注入行为到PPT中。 2、显式接口实现 + 部分类。 3、领域服务。 4、有状态的领域服务,状态为:一个PPT实例。
时间: 2024-10-10 03:02:27