订单系统 高级设计

ps 这里的高级设计是针对我自己的,一开始我设计的系统,虽然实现了mvc,但还没有真正做到逻辑分离。


因为之前开发过的订单已经已经上线,并且运营了一段时间,修正了很多的bug。这里给了我些思路。但我希望能够把他做的更好。


我把订单分为了3大块。

产品服务、订单服务、结算服务、用户服务


<?php
interface IGoodsService {
	public function parseGoods();
}

interface ICouponsService {
	public function addHistory();
}

interface IMemberService {
	function saveMoney();
}

class GoodsService {

}
//通过接口的方式,确保OrderService能够独立
class OrderService {
	protected $GoodsService;
	protected $CouponsService;
	protected $MemberService;
	
	public function __construct($GoodsService, $CouponsService, $MemberService) {
		
		if ($GoodsService instanceof IGoodsService) 

		{
			$this->GoodsService = $GoodsService;
		}
		
		if ($CouponsService instanceof ICouponsService) {
			$this->CouponsService = $CouponsService;
		}
	}
	
	//新增订单 调用他们的方法保持独立 和逻辑的完整性
	public function add($goods, $uid) {
		//解析产品
		$this->GoodsService->parseGoods ( $goods );
		
		//自己增加订单
		$this->MemberService->saveMoney ();
		//添加历史记录
		$this->CouponsService->addHistory ();
	}

}

class CouponsService {

}

//执行方法
class OrderController {
	//新增订单
	public function add() {
	
	}
	
	public static function getOrderService() {
		return new OrderService ( $GoodsService, $CouponsService, $MemberService );
	}

}





转载于:https://my.oschina.net/u/554046/blog/297892

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值