打字猴:1.70046201e+09
1700462010 设计模式之禅 [:1700453973]
1700462011 设计模式之禅 第14章 中介者模式
1700462012
1700462013 设计模式之禅 [:1700453974]
1700462014 14.1 进销存管理是这个样子的吗
1700462015
1700462016 大家都来自五湖四海,都要生存,于是都找了个靠山——公司,就是给你发薪水的地方。公司要想尽办法赢利赚钱,赢利方法则不尽相同,但是各个公司都有相同的三个环节:采购、销售和库存。这个怎么说呢?比如一个软件公司,要开发软件,就需要购买开发环境,如Windows操作系统、数据库产品等,这就是采购;开发完产品还要把产品推销出去;有产品就必然有库存,软件产品也有库存,虽然不需要占用库房空间,但也要占用光盘或硬盘,这也是库存。再比如做咨询服务的公司,它要采购什么?采购知识,采购经验,这是这类企业的生存之本,销售的也是知识和经验,库存同样是知识和经验。既然进销存是如此重要,我们今天就来讲讲它的原理和设计,我相信很多人都已经开发过这种类型的软件,基本上都形成了固定套路,不管是单机版还是网络版,一般的做法都是通过数据库来完成相关产品的管理,相对来说这还是比较简单的项目,三个模块的示意图如图14-1所示。
1700462017
1700462018
1700462019
1700462020
1700462021 图14-1 进销存示意图
1700462022
1700462023 我们从这个示意图上可以看出,三个模块是相互依赖的。我们就以一个终端销售商(以服务最终客户为目标的企业,比如某某超市、某某商店等)为例,采购部门要采购IBM的电脑,它根据以下两个要素来决定采购数量。
1700462024
1700462025 ❑销售情况
1700462026
1700462027 销售部门要反馈销售情况,畅销就多采购,滞销就不采购。
1700462028
1700462029 ❑库存情况
1700462030
1700462031 即使是畅销产品,库存都有1000台了,每天才卖出去10台,也不需要采购了!
1700462032
1700462033 销售模块是企业的赢利核心,对其他两个模块也有影响:
1700462034
1700462035 ❑库存情况
1700462036
1700462037 库房有货,才能销售,空手套白狼是不行的。
1700462038
1700462039 ❑督促采购
1700462040
1700462041 在特殊情况下,比如一个企业客户要一次性购买100台电脑,库存只有80台,这时需要催促采购部门赶快采购!
1700462042
1700462043 同样地,库存管理也对其他两个模块有影响。库房是有容积限制的,不可能无限大,所以就有了清仓处理,那就要求采购部门停止采购,同时销售部门进行打折销售。
1700462044
1700462045 从以上分析来看,这三个模块都有自己的行为,并且与其他模块之间的行为产生关联,类似于我们办公室的同事,大家各干各的活,但是彼此之间还是有交叉的,于是彼此之间就产生紧耦合,也就是一个团队。我们先来实现这个进销存,类图如图14-2所示。
1700462046
1700462047
1700462048
1700462049
1700462050 图14-2 简单的进销存类图
1700462051
1700462052 Purchase负责采购管理,buyIBMComputer指定了采购IBM电脑,refuseBuyIBM是指不再采购IBM了,源代码如代码清单14-1所示。
1700462053
1700462054 代码清单14-1 采购管理
1700462055
1700462056 public class Purchase{
1700462057
1700462058 //采购IBM电脑
1700462059
[ 上一页 ]  [ :1.70046201e+09 ]  [ 下一页 ]