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