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

基于面向?qū)ο笤O(shè)計(jì)模式的倉(cāng)儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2018-10-25 11:06:56周昱晨羅向陽(yáng)張豪
計(jì)算機(jī)時(shí)代 2018年9期

周昱晨 羅向陽(yáng) 張豪

摘 要: 針對(duì)雜志庫(kù)存管理問(wèn)題,基于面向?qū)ο笏枷耄\(yùn)用設(shè)計(jì)模式設(shè)計(jì)了一個(gè)庫(kù)存管理系統(tǒng)。通過(guò)問(wèn)題域部件設(shè)計(jì),將系統(tǒng)劃分為人員管理、物資管理和收益管理三部分,并設(shè)計(jì)了相關(guān)表單;通過(guò)任務(wù)管理部件設(shè)計(jì),運(yùn)用單例模式實(shí)現(xiàn)了并發(fā)審核,運(yùn)用觀察者模式保證了數(shù)據(jù)查詢(xún)的準(zhǔn)確和實(shí)時(shí),運(yùn)用狀態(tài)模式實(shí)現(xiàn)了庫(kù)存的調(diào)取,運(yùn)用裝飾器模式實(shí)現(xiàn)了收益統(tǒng)計(jì),運(yùn)用策略模式評(píng)估了來(lái)年印數(shù)與保留庫(kù)存數(shù);通過(guò)數(shù)據(jù)管理部件和人機(jī)交互部件設(shè)計(jì),運(yùn)用抽象工廠結(jié)合簡(jiǎn)單工廠的模式實(shí)現(xiàn)了多數(shù)據(jù)源訪問(wèn)支持;最后設(shè)計(jì)了用例進(jìn)行測(cè)試。測(cè)試結(jié)果表明,該系統(tǒng)可以滿(mǎn)足雜志庫(kù)存管理的使用需求。

關(guān)鍵詞: 面向?qū)ο笤O(shè)計(jì); 問(wèn)題域部件; 任務(wù)管理部件; 數(shù)據(jù)管理部件; 人機(jī)交互部件; 設(shè)計(jì)模式

中圖分類(lèi)號(hào):TP311.5 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):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 引言

倉(cāng)儲(chǔ)管理日益受到重視,當(dāng)前研究主要著眼兩方面:①優(yōu)化庫(kù)區(qū)、路徑等;②根據(jù)業(yè)務(wù)設(shè)計(jì)優(yōu)良的倉(cāng)儲(chǔ)管理系統(tǒng)[1]。

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

面向?qū)ο笏枷胧剐畔⒛P偷谋硎九c客觀實(shí)體相對(duì)應(yīng),符合人類(lèi)的思維習(xí)慣,在軟件開(kāi)發(fā)中應(yīng)用廣泛。張瑋[4]對(duì)軟件工程中結(jié)構(gòu)化方法與面向?qū)ο蠓椒ㄟM(jìn)行了比較,但沒(méi)有實(shí)例驗(yàn)證;馮德虎[5]、徐帆[6]對(duì)面向?qū)ο蠓治雠c設(shè)計(jì)方法作了綜述,但文章偏重概念陳述而沒(méi)有對(duì)他人成果給出歸納,且文中的例子也只說(shuō)明了對(duì)象建模技術(shù)(object modeling technology,OMT),不涉及設(shè)計(jì)模式;張宇等[7]論述了面向?qū)ο笤O(shè)計(jì)原則與設(shè)計(jì)模式之間的關(guān)系,但也沒(méi)有用實(shí)例驗(yàn)證;周靜[8]運(yùn)用Java實(shí)現(xiàn)了抽象工廠,卻只給出了代碼,實(shí)用性不強(qiáng);雷金勇等[9]舉例說(shuō)明了設(shè)計(jì)模式在暫態(tài)仿真中的應(yīng)用,但沒(méi)有明確將面向?qū)ο?大部件設(shè)計(jì)與模式對(duì)應(yīng)起來(lái)。

本文結(jié)合單位業(yè)務(wù)需求,運(yùn)用面向?qū)ο笏枷胪瓿上到y(tǒng)開(kāi)發(fā),并在部件設(shè)計(jì)過(guò)程中引入模式,通過(guò)用例來(lái)測(cè)試系統(tǒng)可行性。

1 面向?qū)ο笤O(shè)計(jì)原則及模式

1.1 設(shè)計(jì)原則

面向?qū)ο笤O(shè)計(jì)遵循開(kāi)閉原則。以此為基礎(chǔ),又衍生出了6大原則[10]。

⑴ 單一職責(zé):一個(gè)類(lèi)一個(gè)功能,提高模塊的內(nèi)聚;

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

⑶ 里氏替換:繼承原則,子類(lèi)無(wú)縫代替父類(lèi);

⑷ 依賴(lài)倒置:①高層不依賴(lài)低層;②抽象不依賴(lài)實(shí)現(xiàn);

⑸ 接口隔離:?jiǎn)蝹€(gè)復(fù)雜接口拆分為多個(gè)獨(dú)立接口;

⑹ 合成復(fù)用:用組合/聚合實(shí)現(xiàn)功能而不用繼承。

1.2 設(shè)計(jì)模式

1.2.1 創(chuàng)建型模式

⑴ 單例(Singleton):全局只要一個(gè)實(shí)例;

⑵ 原型(Protoype):通過(guò)拷貝原型而不實(shí)例化創(chuàng)建新對(duì)象;

⑶ 工廠(Factory):對(duì)象創(chuàng)建可控,隱藏具體類(lèi)名實(shí)現(xiàn)解耦;

⑷ 抽象工廠(Abstract Factory):類(lèi)根據(jù)需要返回不同對(duì)象,對(duì)象與屬性匹配;

⑸ 建造者(Build):生成對(duì)象與構(gòu)造順序無(wú)關(guān),對(duì)象實(shí)例邏輯在類(lèi)外。

1.2.2 結(jié)構(gòu)型模式

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

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

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

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

⑸ 橋接(Bridge):抽象與實(shí)現(xiàn)分離;

⑹ 享元(Plyweight):相同對(duì)象重用,用于共享數(shù)據(jù);

⑺ 組合(Composite):整體與部分相同,通過(guò)對(duì)象訪問(wèn)對(duì)象樹(shù)。

1.2.3 行為型模式

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

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

⑶ 觀察者(Observer):一對(duì)多關(guān)系,被觀察者變化時(shí)回調(diào);

⑷ 迭代器(Iterator):內(nèi)部實(shí)現(xiàn)無(wú)關(guān)的集合遍歷,順序訪問(wèn)集合中各元素;

⑸ 責(zé)任鏈(Chain of Responsibility):多個(gè)類(lèi)處理一個(gè)請(qǐng)求,不了解彼此功能,類(lèi)間唯一聯(lián)系是互相傳遞請(qǐng)求,直到其中一個(gè)類(lèi)處理;

⑹ 命令(Commond):特定操作的請(qǐng)求封裝到一個(gè)對(duì)象中,客戶(hù)端不了解實(shí)際執(zhí)行就產(chǎn)生請(qǐng)求;

⑺ 備忘錄(Memento):為對(duì)象提供存儲(chǔ)和恢復(fù)手段;

⑻ 狀態(tài)(State):對(duì)象表示程序狀態(tài),通過(guò)轉(zhuǎn)換對(duì)象狀態(tài)來(lái)轉(zhuǎn)換程序狀態(tài)。

⑼ 訪問(wèn)者(Visitor):分離對(duì)象的數(shù)據(jù)和行為;

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

2 問(wèn)題域部件設(shè)計(jì)

本系統(tǒng)將業(yè)務(wù)邏輯分為人員管理、庫(kù)存管理和收益管理三大部分。

人員管理即登記系統(tǒng)的操作員,需要?jiǎng)?chuàng)建:人員表(編號(hào),姓名,手機(jī))。

庫(kù)存管理主要分為入庫(kù)管理和出庫(kù)管理。出庫(kù)又分為發(fā)行和執(zhí)行訂單,故創(chuàng)建:庫(kù)存表(編號(hào),年份,月份,庫(kù)存數(shù)量);發(fā)行表(編號(hào),發(fā)行單位,年份,月份,數(shù)量);訂單表(編號(hào),客戶(hù)姓名,年份,月份,數(shù)量)。

收益管理分為收入管理和支出管理。收入分為訂單收入和發(fā)行收入,支出分為發(fā)行運(yùn)費(fèi)和訂單運(yùn)費(fèi),故建立:發(fā)行運(yùn)費(fèi)表(編號(hào),發(fā)行單位,年份,月份,運(yùn)費(fèi));訂單運(yùn)費(fèi)表(編號(hào),客戶(hù)姓名,年份,月份,運(yùn)費(fèi));訂單收益表(編號(hào),客戶(hù)姓名,年份,月份,金額),發(fā)行收益表(編號(hào),發(fā)行單位,年份,月份,金額)。

3 任務(wù)管理部件設(shè)計(jì)

3.1 人員管理

系統(tǒng)操作員注冊(cè)和登錄后可使用系統(tǒng)。由于本社人員不多且系統(tǒng)業(yè)務(wù)流程也不算復(fù)雜,為讓有人不在崗時(shí)流程依然可進(jìn)行,故操作權(quán)限對(duì)所有成員放開(kāi)。

3.2 庫(kù)存管理

3.2.1 單例模式

從系統(tǒng)業(yè)務(wù)邏輯可知,由于成員權(quán)限相同,需控制并發(fā)處理產(chǎn)生的沖突。單例模式全局只要一個(gè)實(shí)例,成員進(jìn)入修改界面時(shí)生成Singleton類(lèi)的實(shí)例,而Singleton類(lèi)通過(guò)單例模式對(duì)生成實(shí)例數(shù)進(jìn)行控制,當(dāng)一個(gè)成員在修改庫(kù)存數(shù)時(shí)其他成員不能再進(jìn)行修改。單例模式原理如圖1所示。

3.2.2 觀察者模式

本文將運(yùn)用觀察者模式,通過(guò)引入一個(gè)數(shù)據(jù)庫(kù)代理作主體目標(biāo),系統(tǒng)操作員作為觀察者關(guān)注主體目標(biāo)的狀態(tài)變化。當(dāng)其中一個(gè)操作員查詢(xún)庫(kù)存時(shí)另一個(gè)操作員對(duì)庫(kù)存進(jìn)行了修改,數(shù)據(jù)代理就會(huì)發(fā)出一個(gè)狀態(tài)變化通報(bào)給各個(gè)觀察者,確保實(shí)時(shí)性。數(shù)據(jù)庫(kù)代理不清楚系統(tǒng)有多少觀察者,它只在數(shù)據(jù)變化時(shí)通知所有正在查詢(xún)數(shù)據(jù)的觀察者,同樣各個(gè)觀察者只關(guān)注數(shù)據(jù)而不參與數(shù)據(jù)改變的細(xì)節(jié),可在對(duì)象間解耦,使得主體目標(biāo)和觀察者都可自由改變,且因主體不關(guān)心觀察者,增加了重用性。觀察者模式邏輯圖如圖2所示。

3.2.3 狀態(tài)模式

通過(guò)業(yè)務(wù)邏輯分析可知,倉(cāng)庫(kù)有入庫(kù)、空閑和出庫(kù)這三種狀態(tài)。當(dāng)空閑時(shí),庫(kù)存數(shù)沒(méi)有變化,故操作員只查數(shù)據(jù)不進(jìn)行修改;進(jìn)行出入庫(kù)操作時(shí),要修改庫(kù)存數(shù)。入庫(kù)只在有新雜志送達(dá)后才進(jìn)行,出庫(kù)在接到訂單或到達(dá)發(fā)行日時(shí)進(jìn)行。

本文通過(guò)狀態(tài)模式將狀態(tài)間的轉(zhuǎn)換規(guī)則封裝到具體的類(lèi)中,若以后本社的業(yè)務(wù)發(fā)生了變化,要修改轉(zhuǎn)換圖的轉(zhuǎn)換規(guī)則時(shí),只需更改部分對(duì)應(yīng)類(lèi)中的狀態(tài)遷移規(guī)則就可以了,提高了代碼的可維護(hù)性。

狀態(tài)模式邏輯圖如圖3所示。

3.3 收益管理

3.3.1 裝飾器模式

裝飾器主要用來(lái)實(shí)現(xiàn)功能擴(kuò)展,即降低了耦合也降低了系統(tǒng)復(fù)雜度。收益管理中有發(fā)行運(yùn)費(fèi)支出,訂單運(yùn)費(fèi)支出,發(fā)行收入和訂單收入。進(jìn)行統(tǒng)計(jì)時(shí),在發(fā)行運(yùn)費(fèi)支出的基礎(chǔ)上擴(kuò)展發(fā)行收入可得發(fā)行收益,訂單收益亦然。裝飾器模式邏輯圖如圖4所示。

3.3.2 策略模式

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

4 數(shù)據(jù)管理部件和人機(jī)交互部件設(shè)計(jì)

數(shù)據(jù)管理部件負(fù)責(zé)訪問(wèn)數(shù)據(jù)庫(kù),人機(jī)交互部件負(fù)客戶(hù)端展現(xiàn)。為減少需求變化造成系統(tǒng)修改的工作量,本文采用與簡(jiǎn)單工廠模式相結(jié)合的抽象工廠模式,實(shí)現(xiàn)只有一個(gè)具體工廠類(lèi)而有多個(gè)產(chǎn)品族。當(dāng)業(yè)務(wù)邏輯發(fā)生變化時(shí),只要修改相應(yīng)產(chǎn)品類(lèi)并對(duì)具體工廠類(lèi)做少量的修改即可。由于前端、后臺(tái)邏輯近似,且JAVA中有特定的接口,限于篇幅圖表省略。

5 結(jié)束語(yǔ)

本文運(yùn)用面向?qū)ο笏枷朐O(shè)計(jì)了一款雜志倉(cāng)儲(chǔ)管理系統(tǒng),較文獻(xiàn)中主流的結(jié)構(gòu)化設(shè)計(jì)方法思路上有所創(chuàng)新;在實(shí)現(xiàn)功能時(shí)運(yùn)用了設(shè)計(jì)模式,既實(shí)現(xiàn)了解耦又提高了維護(hù)性。研究結(jié)果表明:該系統(tǒng)可滿(mǎn)足單位日常使用需求。

下一步,將進(jìn)一步完善數(shù)據(jù)管理部件和人機(jī)交互部件,提升系統(tǒng)擴(kuò)展性。

參考文獻(xiàn)(References):

[1] 沈捷.快消品企業(yè)倉(cāng)儲(chǔ)管理系統(tǒng)的設(shè)計(jì)與實(shí)施[D].江西財(cái)經(jīng)大學(xué)信息管理學(xué)院碩士學(xué)位論文,2017.

[2] 楊春紅.基于VB和Access的倉(cāng)庫(kù)管理系統(tǒng)[J].電腦編程技巧與維護(hù),2017.24:57-59

[3] 朱宇哲,李 奇.基于SSH框架的鋼廠庫(kù)存管理系統(tǒng)的分析和設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2018.5:131-133

[4] 張 瑋.軟件工程中結(jié)構(gòu)化方法與面向?qū)ο蠓椒ǖ谋容^研究[J].無(wú)線互聯(lián)科技,2017.21:52-53

[5] 馮德虎.面向?qū)ο蠓治雠c設(shè)計(jì)綜述[J].技術(shù)與市場(chǎng),2011.18(5):122-122

[6] 徐 帆.面向?qū)ο箝_(kāi)發(fā)方法綜述[J].重慶工商大學(xué)學(xué)報(bào):自然科學(xué)版,2002.19(4):87-90

[7] 張宇,莊晉林.面向?qū)ο笤O(shè)計(jì)原則和設(shè)計(jì)模式的應(yīng)用[J].華北水利水電大學(xué)學(xué)報(bào):自然科學(xué)版,2007.28(1):63-65

[8] 周靜.JAVA設(shè)計(jì)模式之工廠方法模式的研究與應(yīng)用[J].科技信息:科學(xué)教研,2007.20:90-91

[9] 雷金勇,李 鵬,于學(xué)軍,等.面向?qū)ο蟮脑O(shè)計(jì)模式在暫態(tài)仿真中的應(yīng)用[J].電力系統(tǒng)及其自動(dòng)化學(xué)報(bào),2012.24(3):35-40

[10] GAMMA E著,李英軍譯.設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].機(jī)械工業(yè)出版社,2007.

主站蜘蛛池模板: 97久久超碰极品视觉盛宴| 熟妇丰满人妻| 亚洲精品自产拍在线观看APP| 国产三级成人| 国产丰满大乳无码免费播放| h视频在线播放| a免费毛片在线播放| 天天干伊人| 国产特级毛片aaaaaa| 亚洲一级色| 亚洲伊人电影| 日本在线国产| 国产白浆在线| 国产精品自在在线午夜| 韩日午夜在线资源一区二区| 亚洲色图欧美| 中文字幕无码制服中字| 国产va在线观看免费| 亚洲色图欧美激情| 久久精品嫩草研究院| 香蕉国产精品视频| 成人一区专区在线观看| 亚洲九九视频| 欧美性精品不卡在线观看| 精品一区二区三区自慰喷水| 欧美色香蕉| 理论片一区| 五月丁香在线视频| 亚洲欧美另类久久久精品播放的| 国产一级精品毛片基地| 国产激爽大片高清在线观看| 国产视频自拍一区| 色香蕉影院| 亚洲无码A视频在线| 国产激情在线视频| 国产一区在线观看无码| 国产精品女熟高潮视频| 国产成人AV综合久久| 亚洲最新在线| 丰满的熟女一区二区三区l| 国产精品视频白浆免费视频| 丁香婷婷激情综合激情| 四虎永久在线精品影院| 亚洲精品国产日韩无码AV永久免费网 | 亚洲国产无码有码| 尤物视频一区| 2020极品精品国产 | 永久成人无码激情视频免费| 在线观看视频99| 精品视频91| 久久精品国产亚洲麻豆| 国产又爽又黄无遮挡免费观看| 久夜色精品国产噜噜| 91视频区| 在线观看国产网址你懂的| 国产又色又爽又黄| 精品无码一区二区三区电影| 久久久久国产精品免费免费不卡| 亚洲人成网站色7777| 日韩av无码精品专区| 国产成人做受免费视频| 91小视频在线观看| 国产SUV精品一区二区| 视频国产精品丝袜第一页| 全裸无码专区| 丁香婷婷在线视频| 国产精品yjizz视频网一二区| 亚洲视频色图| 欧美精品伊人久久| 老司机精品一区在线视频| 中文字幕无线码一区| 丰满人妻久久中文字幕| 无码在线激情片| 亚洲人免费视频| 国产99在线观看| 99精品热视频这里只有精品7| 久久综合九九亚洲一区| 久久伊人色| 99在线观看国产| 人妻中文字幕无码久久一区| 美女无遮挡免费视频网站| 毛片大全免费观看|