码迷,mamicode.com
首页 > Web开发 > 详细

thinkPHP中的模型

时间:2015-06-17 00:25:53      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

thinkPHP中的模型

摘自   开源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实例。


thinkPHP中的模型

标签:

原文地址:http://www.cnblogs.com/q3114140374/p/4582086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!