2021设计模式春招面试复习:中介者模式

0源码地址

https://github.com/ImViper/design_pattern

0 进销存管理简介

各个公司都有相同的三个环节:采购、销售和库存

  • 比如一个软件公司,要开发软件,就需要购买开发环境,如Windows操作系统、数据库产品等,这就是采购
  • 开发完产品还要把产品推销出
  • 有产品就必然有库存,软件产品也有库存,虽然不需要占用库房空间,但也要占用光盘或硬盘,这也是库存
    就来讲讲它的原理和设计,一般的做法都是通过数据库来完成相关产品的管理
    进销存示意图

以终端销售商(以服务最终客户为目标的企业,如超市)为例,采购部门要采购IBM的电脑,它根据以下两个要素来决定采购数量。

● 销售情况
销售部门要反馈销售情况,畅销就多采购,滞销就不采购

● 库存情况
即使是畅销产品,库存都有1000台了,每天才卖出去10台,也不需再采购

销售模块是企业的赢利核心,对其他两个模块也有影响:

● 库存情况
库房有货,才能销售

● 督促采购
在特殊情况下,比如一个企业客户要一次性购买100台电脑,库存只有80台,这时需要催促采购部门赶快采购

同样库存管理也对其他两个模块有影响

  • 库房是有容积限制的,不可能无限大,所以就有了清仓处理,那就要求采购部门停止采购,同时销售部门进行打折销售

分析来看,这三个模块都有自己的行为,并且与其他模块之间的行为产生关联,类似于我们办公室的同事,大家各干各的活,但是彼此之间还是有交叉的,于是彼此之间就产生紧耦合,也就是一个团队
我们先来实现这个进销存

1 实现进销系统

 简单的进销存类图
image

Purchase 采购管理

image
Purchase定义了采购电脑的标准

  • 如果销售情况比较好,大于80分,你让我采购多少我就采购多少
  • 销售情况不好,你让我采购100台,我就采购50台,对折采购

电脑采购完毕,需要放到库房中,因此要调用库存的方法,增加库存电脑数量。我们继续来看库房Stock类

Stock 库存管理

image

  • 库房中的货物数量肯定有增减,同时库房还有一个容量显示,达到一定的容量后就要求对一些商品进行折价处理,以腾出更多的空间容纳新产品。于是就有了clearStock方法
  • 既然是清仓处理肯定就要折价销售了。于是在Sale类中就有了offSale方法

我们来看Sale源代码

Sale

image
Sale类中的getSaleStatus是获得销售情况

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值