书城计算机大话设计模式
11030400000149

第149章 1 订单处理

时间:1月5日地点:大B房间人物:大B,小。

这天,大B和小A在讨论怎样去处理订单的问题。

小A:“一个客户可以在一个订货单中订购多个货物(也称为订货单项目),货物的销售价是根据货物的进货价进行计算的。”

大B:“有些货物可以打折的,有些是不可以打折的。每一个客户都有一个信用额度,每张订单的总价不能超出该客户的信用额度。”

小A:“那我们应该怎样去处理这个订单?”

大B:“处理一个订单需要的步聚:1、遍历订货单的订货单项目列表,累加所有货物的总价格(根据订货单项目计算出销售价)。2、根据客户号获得客户的信用额度。3、把客户号,订单的总价格,及订单项目列表写入到数据库。”

小A:“但是我们并不能确定怎么计算出货物的销售价,怎样根据客户号获得客户的信用额度及把订单信息写入数据库这些方法的具体实现?”

大B:“所以用一个抽象类AbstractOrder确定订单处理的逻辑,把不能确定的方法定义为抽象方法,由子类去完成具体的实现。”