UML

点击查看【processon】

代码设计

  1. struct 促销{ //促销
  2. virtual void discount(Order*) = 0; //优惠(订单)
  3. }
  4. struct 打折 : 促销{ //还有满减、秒杀、还分五一打折、双十一秒杀
  5. void 优惠( 订单 ){
  6. cout << "打折" << endl;
  7. }
  8. }
  9. struct 订单{
  10. public:
  11. 订单( 用户 user, 促销 promotion )
  12. void 结算();
  13. void 加入购物车( 商品 item );
  14. private:
  15. 促销 instance;
  16. }
  17. main(){
  18. 用户 小明;
  19. 促销 *promotion = &打折();
  20. 订单 order(小明, promotion);
  21. order.加入购物车(......);
  22. order.结算();
  23. }