設計模式實戰 - 中介者模式

JavaEdge發表於2018-11-27

0 進銷存管理簡介

各個公司都有相同的三個環節:採購、銷售和庫存

  • 比如一個軟體公司,要開發軟體,就需要購買開發環境,如Windows作業系統、資料庫產品等,這就是採購
  • 開發完產品還要把產品推銷出
  • 有產品就必然有庫存,軟體產品也有庫存,雖然不需要佔用庫房空間,但也要佔用光碟或硬碟,這也是庫存
    就來講講它的原理和設計,一般的做法都是通過資料庫來完成相關產品的管理


    設計模式實戰 - 中介者模式
    進銷存示意圖

以終端銷售商(以服務最終客戶為目標的企業,如超市)為例,採購部門要採購IBM的電腦,它根據以下兩個要素來決定採購數量。
● 銷售情況
銷售部門要反饋銷售情況,暢銷就多采購,滯銷就不採購
● 庫存情況
即使是暢銷產品,庫存都有1000臺了,每天才賣出去10臺,也不需再採購

銷售模組是企業的贏利核心,對其他兩個模組也有影響:
● 庫存情況
庫房有貨,才能銷售
● 督促採購
在特殊情況下,比如一個企業客戶要一次性購買100臺電腦,庫存只有80臺,這時需要催促採購部門趕快採購

同樣庫存管理也對其他兩個模組有影響

  • 庫房是有容積限制的,不可能無限大,所以就有了清倉處理,那就要求採購部門停止採購,同時銷售部門進行打折銷售

分析來看,這三個模組都有自己的行為,並且與其他模組之間的行為產生關聯,類似於我們辦公室的同事,大家各幹各的活,但是彼此之間還是有交叉的,於是彼此之間就產生緊耦合,也就是一個團隊
我們先來實現這個進銷存

1 實現進銷系統

設計模式實戰 - 中介者模式
簡單的進銷存類圖

Purchase 採購管理

設計模式實戰 - 中介者模式

Purchase定義了採購電腦的標準

  • 如果銷售情況比較好,大於80分,你讓我採購多少我就採購多少
  • 銷售情況不好,你讓我採購100臺,我就採購50臺,對摺採購

電腦採購完畢,需要放到庫房中,因此要呼叫庫存的方法,增加庫存電腦數量。我們繼續來看庫房Stock類

Stock 庫存管理

設計模式實戰 - 中介者模式
  • 庫房中的貨物數量肯定有增減,同時庫房還有一個容量顯示,達到一定的容量後就要求對一些商品進行折價處理,以騰出更多的空間容納新產品。於是就有了clearStock方法
  • 既然是清倉處理肯定就要折價銷售了。於是在Sale類中就有了offSale方法

我們來看Sale原始碼

相關文章