999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于面向對象設計模式的倉儲系統設計與實現

2018-10-25 11:06:56周昱晨羅向陽張豪
計算機時代 2018年9期

周昱晨 羅向陽 張豪

摘 要: 針對雜志庫存管理問題,基于面向對象思想,運用設計模式設計了一個庫存管理系統。通過問題域部件設計,將系統劃分為人員管理、物資管理和收益管理三部分,并設計了相關表單;通過任務管理部件設計,運用單例模式實現了并發審核,運用觀察者模式保證了數據查詢的準確和實時,運用狀態模式實現了庫存的調取,運用裝飾器模式實現了收益統計,運用策略模式評估了來年印數與保留庫存數;通過數據管理部件和人機交互部件設計,運用抽象工廠結合簡單工廠的模式實現了多數據源訪問支持;最后設計了用例進行測試。測試結果表明,該系統可以滿足雜志庫存管理的使用需求。

關鍵詞: 面向對象設計; 問題域部件; 任務管理部件; 數據管理部件; 人機交互部件; 設計模式

中圖分類號:TP311.5 文獻標志碼:A 文章編號:1006-8228(2018)09-33-04

Abstract: Aiming at the problem of inventory control of magazine, the object-oriented design pattern was used to design the inventory management system. In the design process of the problem domain components, the system was divided into 3 parts: personnel management, material management and earnings management, and business related forms were designed. In the design process of task management components, the singleton pattern was used to realize concurrent audit, the observer pattern was used to guarantee the accuracy and real-time of data query, the state pattern was used to realize inventory control, the decorator pattern was used to statistics of revenue and expenditure, the strategy pattern was used to evaluate the number of next year's printing and storage quantity. And in the design process of data management components and human interaction components, the abstract factory was used with the combination of the simple factory pattern to achieve the multiple data source access support. Finally, the use cases were designed and tested, and the results show that the system meets the needs of inventory management of magazine.

Key words: object-oriented design; problem domain components; task management components; data management components; human interaction components; design pattern

0 引言

倉儲管理日益受到重視,當前研究主要著眼兩方面:①優化庫區、路徑等;②根據業務設計優良的倉儲管理系統[1]。

倉儲管理系統應用廣泛。楊春紅[2]運用VB語言設計了快消品企業倉儲系統,但其對模塊的實現敘述簡略;朱宇哲[3]等運用SSH框架設計了一個鋼廠庫存管理系統,通過MVC模型實現了底層數據、中間業務邏輯、前端視圖的分離,但一方面作者運用的還是結構化設計思想,另一方面MVC不是一種設計模式,可看作多種模式的組合,雖然在系統層面實現了解耦,但在實現特定功能時解耦不如設計模式徹底。文獻[3]代表了當下庫存管理系統設計的主流思路,反映出設計思想和實現方法有創新和改進的空間。

面向對象思想使信息模型的表示與客觀實體相對應,符合人類的思維習慣,在軟件開發中應用廣泛。張瑋[4]對軟件工程中結構化方法與面向對象方法進行了比較,但沒有實例驗證;馮德虎[5]、徐帆[6]對面向對象分析與設計方法作了綜述,但文章偏重概念陳述而沒有對他人成果給出歸納,且文中的例子也只說明了對象建模技術(object modeling technology,OMT),不涉及設計模式;張宇等[7]論述了面向對象設計原則與設計模式之間的關系,但也沒有用實例驗證;周靜[8]運用Java實現了抽象工廠,卻只給出了代碼,實用性不強;雷金勇等[9]舉例說明了設計模式在暫態仿真中的應用,但沒有明確將面向對象4大部件設計與模式對應起來。

本文結合單位業務需求,運用面向對象思想完成系統開發,并在部件設計過程中引入模式,通過用例來測試系統可行性。

1 面向對象設計原則及模式

1.1 設計原則

面向對象設計遵循開閉原則。以此為基礎,又衍生出了6大原則[10]。

⑴ 單一職責:一個類一個功能,提高模塊的內聚;

⑵ 迪米特法則:模塊間解耦;

⑶ 里氏替換:繼承原則,子類無縫代替父類;

⑷ 依賴倒置:①高層不依賴低層;②抽象不依賴實現;

⑸ 接口隔離:單個復雜接口拆分為多個獨立接口;

⑹ 合成復用:用組合/聚合實現功能而不用繼承。

1.2 設計模式

1.2.1 創建型模式

⑴ 單例(Singleton):全局只要一個實例;

⑵ 原型(Protoype):通過拷貝原型而不實例化創建新對象;

⑶ 工廠(Factory):對象創建可控,隱藏具體類名實現解耦;

⑷ 抽象工廠(Abstract Factory):類根據需要返回不同對象,對象與屬性匹配;

⑸ 建造者(Build):生成對象與構造順序無關,對象實例邏輯在類外。

1.2.2 結構型模式

⑴ 適配器(Adapter):適配不同接口的類,方法各不同;

⑵ 裝配器(Dacorator):比繼承靈活,可組合形成多種擴展類;

⑶ 代理(Proxy):可用于身份驗證;

⑷ 外觀(Facade):對模塊封裝,給子系統接口;

⑸ 橋接(Bridge):抽象與實現分離;

⑹ 享元(Plyweight):相同對象重用,用于共享數據;

⑺ 組合(Composite):整體與部分相同,通過對象訪問對象樹。

1.2.3 行為型模式

⑴ 策略(Strategy):不同方法在一個類中,可選擇;

⑵ 模板(Template):具有相同流程;

⑶ 觀察者(Observer):一對多關系,被觀察者變化時回調;

⑷ 迭代器(Iterator):內部實現無關的集合遍歷,順序訪問集合中各元素;

⑸ 責任鏈(Chain of Responsibility):多個類處理一個請求,不了解彼此功能,類間唯一聯系是互相傳遞請求,直到其中一個類處理;

⑹ 命令(Commond):特定操作的請求封裝到一個對象中,客戶端不了解實際執行就產生請求;

⑺ 備忘錄(Memento):為對象提供存儲和恢復手段;

⑻ 狀態(State):對象表示程序狀態,通過轉換對象狀態來轉換程序狀態。

⑼ 訪問者(Visitor):分離對象的數據和行為;

⑽ 解釋器(Interpreter):可用于純文本表達式執行。

2 問題域部件設計

本系統將業務邏輯分為人員管理、庫存管理和收益管理三大部分。

人員管理即登記系統的操作員,需要創建:人員表(編號,姓名,手機)。

庫存管理主要分為入庫管理和出庫管理。出庫又分為發行和執行訂單,故創建:庫存表(編號,年份,月份,庫存數量);發行表(編號,發行單位,年份,月份,數量);訂單表(編號,客戶姓名,年份,月份,數量)。

收益管理分為收入管理和支出管理。收入分為訂單收入和發行收入,支出分為發行運費和訂單運費,故建立:發行運費表(編號,發行單位,年份,月份,運費);訂單運費表(編號,客戶姓名,年份,月份,運費);訂單收益表(編號,客戶姓名,年份,月份,金額),發行收益表(編號,發行單位,年份,月份,金額)。

3 任務管理部件設計

3.1 人員管理

系統操作員注冊和登錄后可使用系統。由于本社人員不多且系統業務流程也不算復雜,為讓有人不在崗時流程依然可進行,故操作權限對所有成員放開。

3.2 庫存管理

3.2.1 單例模式

從系統業務邏輯可知,由于成員權限相同,需控制并發處理產生的沖突。單例模式全局只要一個實例,成員進入修改界面時生成Singleton類的實例,而Singleton類通過單例模式對生成實例數進行控制,當一個成員在修改庫存數時其他成員不能再進行修改。單例模式原理如圖1所示。

3.2.2 觀察者模式

本文將運用觀察者模式,通過引入一個數據庫代理作主體目標,系統操作員作為觀察者關注主體目標的狀態變化。當其中一個操作員查詢庫存時另一個操作員對庫存進行了修改,數據代理就會發出一個狀態變化通報給各個觀察者,確保實時性。數據庫代理不清楚系統有多少觀察者,它只在數據變化時通知所有正在查詢數據的觀察者,同樣各個觀察者只關注數據而不參與數據改變的細節,可在對象間解耦,使得主體目標和觀察者都可自由改變,且因主體不關心觀察者,增加了重用性。觀察者模式邏輯圖如圖2所示。

3.2.3 狀態模式

通過業務邏輯分析可知,倉庫有入庫、空閑和出庫這三種狀態。當空閑時,庫存數沒有變化,故操作員只查數據不進行修改;進行出入庫操作時,要修改庫存數。入庫只在有新雜志送達后才進行,出庫在接到訂單或到達發行日時進行。

本文通過狀態模式將狀態間的轉換規則封裝到具體的類中,若以后本社的業務發生了變化,要修改轉換圖的轉換規則時,只需更改部分對應類中的狀態遷移規則就可以了,提高了代碼的可維護性。

狀態模式邏輯圖如圖3所示。

3.3 收益管理

3.3.1 裝飾器模式

裝飾器主要用來實現功能擴展,即降低了耦合也降低了系統復雜度。收益管理中有發行運費支出,訂單運費支出,發行收入和訂單收入。進行統計時,在發行運費支出的基礎上擴展發行收入可得發行收益,訂單收益亦然。裝飾器模式邏輯圖如圖4所示。

3.3.2 策略模式

本社每年底都要清理本年雜志,只保留一定數量作庫存,并確定來年印數。本文運用策略模式,將發行數和訂單數放在數量類中,將支出數與收入數放在金額類中。運用策略模式調用發行數與收入金額數可知發行數與收益關系,據此可大致估算來年印數,以期不浪費;調用訂單數與收入金額數可知訂單數與收益關系,以此可估算保留庫存數,以期收益最大化。 策略模式邏輯圖如圖5所示。

4 數據管理部件和人機交互部件設計

數據管理部件負責訪問數據庫,人機交互部件負客戶端展現。為減少需求變化造成系統修改的工作量,本文采用與簡單工廠模式相結合的抽象工廠模式,實現只有一個具體工廠類而有多個產品族。當業務邏輯發生變化時,只要修改相應產品類并對具體工廠類做少量的修改即可。由于前端、后臺邏輯近似,且JAVA中有特定的接口,限于篇幅圖表省略。

5 結束語

本文運用面向對象思想設計了一款雜志倉儲管理系統,較文獻中主流的結構化設計方法思路上有所創新;在實現功能時運用了設計模式,既實現了解耦又提高了維護性。研究結果表明:該系統可滿足單位日常使用需求。

下一步,將進一步完善數據管理部件和人機交互部件,提升系統擴展性。

參考文獻(References):

[1] 沈捷.快消品企業倉儲管理系統的設計與實施[D].江西財經大學信息管理學院碩士學位論文,2017.

[2] 楊春紅.基于VB和Access的倉庫管理系統[J].電腦編程技巧與維護,2017.24:57-59

[3] 朱宇哲,李 奇.基于SSH框架的鋼廠庫存管理系統的分析和設計[J].工業控制計算機,2018.5:131-133

[4] 張 瑋.軟件工程中結構化方法與面向對象方法的比較研究[J].無線互聯科技,2017.21:52-53

[5] 馮德虎.面向對象分析與設計綜述[J].技術與市場,2011.18(5):122-122

[6] 徐 帆.面向對象開發方法綜述[J].重慶工商大學學報:自然科學版,2002.19(4):87-90

[7] 張宇,莊晉林.面向對象設計原則和設計模式的應用[J].華北水利水電大學學報:自然科學版,2007.28(1):63-65

[8] 周靜.JAVA設計模式之工廠方法模式的研究與應用[J].科技信息:科學教研,2007.20:90-91

[9] 雷金勇,李 鵬,于學軍,等.面向對象的設計模式在暫態仿真中的應用[J].電力系統及其自動化學報,2012.24(3):35-40

[10] GAMMA E著,李英軍譯.設計模式:可復用面向對象軟件的基礎[M].機械工業出版社,2007.

主站蜘蛛池模板: 亚洲欧美自拍中文| 免费观看男人免费桶女人视频| 精品亚洲麻豆1区2区3区| 国产传媒一区二区三区四区五区| 国产青榴视频| 91久久偷偷做嫩草影院电| 无码人中文字幕| 黄色在线网| 亚洲a免费| 五月婷婷激情四射| 国产在线观看成人91| 日韩精品一区二区三区中文无码| av在线手机播放| 香蕉伊思人视频| 永久成人无码激情视频免费| 亚洲福利网址| 国产99精品视频| 日韩高清在线观看不卡一区二区| 国产精品亚洲片在线va| 婷婷六月天激情| 国产剧情一区二区| 少妇人妻无码首页| 黄色三级毛片网站| 曰AV在线无码| a欧美在线| 中文字幕人成乱码熟女免费| 久久夜色撩人精品国产| 亚洲另类色| 九九久久精品免费观看| 一本久道久久综合多人| 丁香婷婷激情综合激情| 国产亚洲精品97在线观看| 国产不卡国语在线| 亚洲av无码久久无遮挡| 精品国产免费观看一区| 亚洲经典在线中文字幕| 亚洲免费人成影院| 在线播放国产一区| 国产成人亚洲欧美激情| 亚洲成人高清在线观看| 亚洲免费播放| 蜜芽一区二区国产精品| 在线看免费无码av天堂的| 亚洲大尺码专区影院| 网友自拍视频精品区| 尤物国产在线| 久久久久88色偷偷| 激情综合五月网| 亚洲黄色视频在线观看一区| 国产成人精品视频一区视频二区| 91精品国产麻豆国产自产在线| 亚洲无码精品在线播放| 四虎影视无码永久免费观看| 91久久大香线蕉| 国产激情无码一区二区APP| 美女无遮挡免费视频网站| 国产真实乱子伦视频播放| 丁香五月激情图片| jizz亚洲高清在线观看| 国产精品一区二区在线播放| 久久夜色精品| 71pao成人国产永久免费视频| 日韩视频福利| 亚亚洲乱码一二三四区| 人与鲁专区| 激情六月丁香婷婷四房播| 国产福利微拍精品一区二区| 国产日韩精品欧美一区灰| 风韵丰满熟妇啪啪区老熟熟女| 国产欧美日韩18| 欧美国产日韩一区二区三区精品影视 | 国产精品2| 最新亚洲人成网站在线观看| 波多野结衣视频一区二区 | 亚洲国产天堂在线观看| 午夜啪啪网| 国产精品福利一区二区久久| 国产精品精品视频| 久久香蕉国产线看观看精品蕉| 亚洲最大情网站在线观看 | 久久午夜夜伦鲁鲁片不卡| 暴力调教一区二区三区|