订单系统 高级设计

ps 这里的高级设计是针对我本身的,一开始我设计的系统,虽然实现了mvc,但尚未真正作到逻辑分离。php


由于以前开发过的订单已经已经上线,而且运营了一段时间,修正了不少的bug。这里给了我些思路。但我但愿可以把他作的更好。mvc


我把订单分为了3大块。ui

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


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

}
相关文章
相关标签/搜索