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