订单系统 高级设计

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

}

订单系统 高级设计

时间: 2024-10-16 13:05:15

订单系统 高级设计的相关文章

京东虚拟业务多维订单系统架构设计读后感

阅读文章:京东虚拟业务多维订单系统架构设计 文章网址:https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247486428&idx=1&sn=382f9d307073839f7900df7168916cf1&chksm=fbf7bb33cc80322599a586248c4bf92880374dcb8c48249c91b03170230112492b3ec628206e&scene=21#wechat_re

连载:告诉你如何设计一个日访问量千万级别的系统,谈oracle的高级设计和开发(2)

接下来正式开篇讲解在实际中大型项目中oracle的高级设计及开发的内容,以下讲解的oracle内容以及示例程序都是基于oracle11R2. 为了防止脱离实际地搞一堆理论,本人尽量用实际工作中的例子来说明问题,当然一些必要的理论有时候还是需要讲解,因为说的内容是高级设计及开发,入门级的SQL以及数据库概念将不会做详细讲解. 绝大多数IT项目,都是围绕数据库进行各种业务的,所以也有人将这类项目称为数据库项目,也就是说数据库是重点,有过项目设计经验的都知道,好的数据库设计,可以让开发和维护变得简单,

高级系统架构设计官方教材(带目录),免费拿走

高级系统架构设计官方教材(带目录)下载地址:点此下载以下为目录截图: 高级系统架构设计官方教材(带目录),免费拿走 原文地址:https://www.cnblogs.com/dabear/p/9265995.html

如何设计一个日访问量千万级别的系统,谈oracle的高级设计和开发(1)

假如要开发一个日访问量百万级别.甚至千万级别访问量的互联网平台,性能和安全是首要考虑的因素.单从性能上讲,主要从以下几个方面考虑: 1)       硬件及网络设备: 2)       分布式.集群.读写分离.CDN加速等: 3)       使用优秀的开发框架,充分利用缓存机制: 4)       良好的数据库设计规划,包括数据库集群,关系型数据库+非关系型数据库结合: 5)       高性能的开发语言编程,特别是数据库部分的编程: 等等. 建设一个中大型互联网平台,是有技术含金量的,抛开硬

电商峰值系统架构设计--转载

1.1 系统架构设计目录 摘要:双11来临之际,<程序员>以“电商峰值系统架构设计”为主题,力邀京东.当当.小米.1号店.海尔商城.唯品会.蘑菇街.麦包包等电商企业,及商派.基调网络等服务公司,分享电商峰值系统架构设计的最佳技术实践. 自2009年11月11日,淘宝商城(现名天猫)拉开网购狂欢节的序幕,各大电商的促销浪潮此起彼伏.此时的电商大战不仅是价格之争,更是技术的较量.如何设计电商峰值系统来更好地满足用户蜂拥而至的访问,如何在海量数据处理中实时发现有效信息并转化为商机,成为众多电商企业密

电商 秒杀系统 设计思路和实现方法

电商 秒杀系统 设计思路和实现方法 2017年05月26日 00:06:35 阅读数:3662 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有: 对现有网站业务造

订单功能模块设计与实现

在商城项目中,之前我们介绍了购物车功能模块的实现,商品加入到购物车之后,就是到购物车结算,然后显示购物车的商品列表,点击去结算,然后到了未提交前的订单列表, 点击提交订单后,生成此订单,返回订单的订单号,付款金额,订单预计到达时间.订单系统是一个非常重要的系统,我们的移动端.PC端都需要订单系统,所以这里我们将订单系统单独作为一个服务来,留出接口供客户单来调用 今天我们来看下这个订单系统到底是如何实现的: 一.订单系统功能 订单系统主要包含哪些功能模块呢? 创建订单功能.查看订单列表.根据订单i

模块管理常规功能自定义系统的设计与实现(36--终级阶段 综合查询[3])

综合查询(3)--查询条件的设置2 不仅仅对于模块才有这样方便的条件选择方式,对模块的字段也可以设置.例如对于"省份"中有个字段是"所属区域",这个字段不是一个manyToOne字段,而是一个字符串字段,里面就是存着"东北地区"."华北地区"等等这样的具体的字符串值.对于这样的字段也很容易将其放在toolbar上供选择.在模块字段中找到"所属区域"这个字段,修改字段的属性,让这个字段可以加到综合查询的too

模块管理常规功能自定义系统的设计与实现(28--多个模块之间的关联[4])

多个模块之间的关联(4) 前面搭建了客户以及客户父模块的一个分支,另一个分支是产品线,还有一个是业务员,然后这三条线归并到订单之上. 前面我贴了我要搭建系统的一张图,现在贴一下数据库的表和其之间的关系情况. 上图中表和我设计的简易销售管理系统是完全一致的.再看一下的模块图,稍微记下下其中的关系,对于看懂下面的内容很有必要. 对于业务员,产品,订单三条分支我建立的过程就不介绍了.现在来看看架构好的菜单: 再看看加好的各个模块的页面: 1.部门和业务员: 2.商品类别 3.商品 4?订单 订单明细