首页 > 代码库 > 订单系统 高级设计

订单系统 高级设计

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 );
	}

}