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.

主站蜘蛛池模板: 全部毛片免费看| 日韩精品毛片人妻AV不卡| 国产va在线| 中文字幕在线播放不卡| 在线a视频免费观看| 精品国产成人三级在线观看 | jizz国产视频| 国产亚洲欧美在线专区| 亚洲色图在线观看| 成年看免费观看视频拍拍| 久久免费精品琪琪| 91欧美亚洲国产五月天| 国产97公开成人免费视频| 免费日韩在线视频| 亚洲综合中文字幕国产精品欧美| 无码一区二区波多野结衣播放搜索| 亚洲中文字幕无码mv| 99国产在线视频| 精品人妻一区无码视频| 97久久免费视频| 老色鬼欧美精品| 精品国产自| 亚洲第一极品精品无码| 欧美无专区| 2021国产v亚洲v天堂无码| 精品视频福利| 性色一区| 欧美午夜网| 婷婷伊人五月| 色播五月婷婷| 日韩在线永久免费播放| 久久9966精品国产免费| 亚洲伊人久久精品影院| 国产经典免费播放视频| 一本大道在线一本久道| 欧美午夜小视频| 欧美另类精品一区二区三区| 综合色区亚洲熟妇在线| 亚洲高清中文字幕| 色成人综合| 亚洲综合香蕉| 日韩精品无码免费一区二区三区| 一级看片免费视频| 欧美激情视频一区| 亚洲第一成年网| 爱做久久久久久| 国产成人亚洲无吗淙合青草| 亚洲国产日韩在线成人蜜芽| 伊人久久大香线蕉综合影视| 亚洲欧美另类久久久精品播放的| 国产成人精品一区二区三在线观看| 久久精品无码中文字幕| 青青草国产免费国产| 久久人搡人人玩人妻精品| 国产乱子精品一区二区在线观看| 国产精品yjizz视频网一二区| 亚洲精品波多野结衣| av一区二区三区在线观看| 色偷偷男人的天堂亚洲av| 久爱午夜精品免费视频| 波多野结衣久久高清免费| 国产伦精品一区二区三区视频优播 | 国产精品白浆无码流出在线看| 日韩国产综合精选| 99视频在线免费观看| 1769国产精品视频免费观看| 精品国产香蕉伊思人在线| 亚洲AV永久无码精品古装片| 亚洲熟女中文字幕男人总站| 女人毛片a级大学毛片免费| 亚洲av中文无码乱人伦在线r| 一区二区三区在线不卡免费| 国产全黄a一级毛片| 中文无码精品A∨在线观看不卡| 久久久久人妻精品一区三寸蜜桃| 亚洲av无码牛牛影视在线二区| 中国成人在线视频| 72种姿势欧美久久久大黄蕉| 国产精品亚洲片在线va| 欧美成人午夜视频| 国产成人精品男人的天堂| 全裸无码专区|