欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種高低層模塊解耦的依賴倒置優(yōu)化方法

文檔序號:6631133閱讀:1315來源:國知局
一種高低層模塊解耦的依賴倒置優(yōu)化方法
【專利摘要】本發(fā)明提供一種高低層模塊解耦的依賴倒置優(yōu)化方法,在JavaWeb應(yīng)用中,重要的業(yè)務(wù)邏輯以及方案應(yīng)該集成在高層的模塊中,業(yè)務(wù)模型包含了應(yīng)用的一些特性,隨之帶來的問題是,當(dāng)高層的模塊與底層的模塊聯(lián)系性太強(qiáng)的情況下,底層模塊的修改直接影響高層模塊的效果,從而引發(fā)一些列的模塊修改,從優(yōu)先級來考慮,高層模塊的優(yōu)先級應(yīng)高于底層模塊,因為高層模塊是業(yè)務(wù)處理的核心部分,因此,底層模塊的改變不應(yīng)該導(dǎo)致高層模塊的改變,因此,在設(shè)計模式中,應(yīng)該使高層模塊和底層模塊處于聯(lián)系而互不依賴的環(huán)境之下,從而實現(xiàn)高層模塊的復(fù)用和底層模塊的靈活性修改。這也是框架設(shè)計最核心的原則。
【專利說明】一種高低層模塊解耦的依賴倒置優(yōu)化方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件開發(fā)【技術(shù)領(lǐng)域】,具體地說是一種高低層模塊解耦的依賴倒置優(yōu)化方法。

【背景技術(shù)】
[0002]在傳統(tǒng)的軟件開發(fā)過程中,高層模塊的分析和設(shè)計在很大程度上依賴于底層模塊具體的模塊功能實現(xiàn)。因此,需要使用各種技術(shù)和方法去定義高層模塊如何調(diào)用底層模塊的功能。這種層次結(jié)構(gòu)就是通常所說的依賴結(jié)構(gòu),即底層決定高層,具體決定抽象。這種層次結(jié)構(gòu)所帶來的結(jié)構(gòu)就是當(dāng)下層功能模塊改變時,將引起上層更加“劇烈”地改變,從而使得模塊的復(fù)用性大大降低并且大大提高了開發(fā)成本。
[0003]針對上述傳統(tǒng)的過程化的方法通常所產(chǎn)生的那種依賴結(jié)構(gòu),一個設(shè)計良好的面向?qū)ο蟮某绦蛑械囊蕾嚱Y(jié)構(gòu)應(yīng)該是“被倒置”的。
[0004]所謂依賴倒置原則,就是指模塊設(shè)計要依賴于抽象的對象,而不要過分依賴于具體的操作細(xì)節(jié),從而降低高層模塊和底層模塊的關(guān)聯(lián)性,防止底層修改而“逼迫”高層模塊修改的問題。
[0005]依賴倒置原則設(shè)計1c、DI等技術(shù)。
[0006](1)設(shè)計模式:傳統(tǒng)的依賴模式如圖1所示,在該設(shè)計模式之下,高層模塊依賴于底層模塊,底層模塊的修改都將會直接影響高層模塊的業(yè)務(wù)策略實現(xiàn),進(jìn)而導(dǎo)致高層模塊的修改。
[0007]該種依賴模式的弊端:
①模塊關(guān)聯(lián)性強(qiáng),修改一個地方,會導(dǎo)致其他地方也會改變;
②系統(tǒng)健壯性差,增加系統(tǒng)不可控的風(fēng)險因素;
③無法復(fù)用,因為過度依賴于實現(xiàn)的細(xì)節(jié),導(dǎo)致功能模塊不容易剝離,從而無法實現(xiàn)模塊功能的復(fù)用。
[0008](2)里氏替換原則
根據(jù)里氏替換原則,父類出現(xiàn)的地方子類就能夠出現(xiàn)。明確接口和實現(xiàn)類的功能區(qū)分,接口只負(fù)責(zé)屬性和方法的定義,而不要關(guān)心方法的具體實現(xiàn),并且聲明和其他對象之間的繼承調(diào)用關(guān)系。抽象類實現(xiàn)公共部分的功能,是具體的業(yè)務(wù)邏輯交給實現(xiàn)類去解決。在程序編寫過程中,通過對各事務(wù)的抽象產(chǎn)生了抽象類和接口,然后根據(jù)系統(tǒng)設(shè)計的需要產(chǎn)生抽象間的依賴,代替?zhèn)鹘y(tǒng)程序設(shè)計結(jié)構(gòu)中具體的依賴。


【發(fā)明內(nèi)容】

[0009]本發(fā)明的目的是提供一種高低層模塊解耦的依賴倒置優(yōu)化方法。
[0010]本發(fā)明的目的是按以下方式實現(xiàn)的,從優(yōu)先級來考慮,高層模塊的優(yōu)先級應(yīng)高于底層模塊,因為高層模塊是業(yè)務(wù)處理的核心部分,因此,底層模塊的改變不應(yīng)該導(dǎo)致高層模塊的改變,在設(shè)計模式中,應(yīng)該使高層模塊和底層模塊處于聯(lián)系而互不依賴的環(huán)境之下,從而實現(xiàn)高層模塊的復(fù)用和底層模塊的靈活性修改,這也是框架設(shè)計最核心的原則;具體步驟如下:
①通過構(gòu)造函數(shù)傳遞依賴對象:
在構(gòu)造函數(shù)中需要傳遞的參數(shù)是抽象類或接口的方式實現(xiàn);
②通過使用setter方法傳遞依賴對象:
在抽象類或者接口中,添加setXXX方法,以傳遞依賴對象;
③接口聲明實現(xiàn)依賴對象,即接口注入:
將抽象類或者接口作為參數(shù)傳遞,然后在底層模塊中可以直接使用依賴對象從而達(dá)到傳遞依賴對象的目的。
[0011]所述的方法,依賴倒置原則就是要求開發(fā)過程依賴于抽象,而非依賴于具體,降低不同層次模塊之間的耦合。
[0012]所述的方法,含有高層策略的模塊,獨立于它所控制的所有細(xì)節(jié),從而獨立于低層模塊,尋找解決方案。
[0013]所述的方法,采用適配器模式進(jìn)行重構(gòu),定義新的抽象而非修改具體;
所述的方法,通過抽象類或接口使各個類或模塊的實現(xiàn)彼此獨立,不相互影響,實現(xiàn)模塊間的松耦合,即契約式編程。
[0014]本發(fā)明的有益效果是:在該種依賴模式中,高層模塊的優(yōu)先級高于底層模塊,因此底層模塊的修改不會影響高層模塊。在高層模塊復(fù)用過程中,通過子程序庫的方式,我們可以很方便的調(diào)用底層模塊。因此,在高層模塊獨立于底層模塊中,模塊可以被很簡單地復(fù)用,這也是框架設(shè)計的核心原則。

【專利附圖】

【附圖說明】
[0015]圖1是傳統(tǒng)設(shè)計模式圖。

【具體實施方式】
[0016]參照說明書附圖對本發(fā)明的方法作以下詳細(xì)地說明。
[0017]解決高層模塊控制細(xì)節(jié)太多,無法從系統(tǒng)中剝離從而導(dǎo)致模塊無法復(fù)用的問題。
[0018](1)方案核心思想:高層模塊不應(yīng)依賴于底層模塊,二者都依賴于抽象。
[0019](2)舉例說明:A代表的是高層模塊,實現(xiàn)復(fù)雜的業(yè)務(wù)邏輯,B和C是底層模塊,負(fù)責(zé)基本的功能單元。類A直接依賴于類B,因為重構(gòu)后A依賴于C,所以必須修改類A的代碼才能實現(xiàn)效果。一般來說,修改A的代碼,會給程序帶來很大的風(fēng)險。
[0020](3)具體實現(xiàn)方法
①通過構(gòu)造函數(shù)傳遞依賴對象:
在構(gòu)造函數(shù)中需要傳遞的參數(shù)是抽象類或接口的方式實現(xiàn);
②通過使用setter方法傳遞依賴對象:
在抽象類或者接口中,添加setXXX方法,以傳遞依賴對象;
③接口聲明實現(xiàn)依賴對象,即接口注入:
將抽象類或者接口作為參數(shù)傳遞,然后在底層模塊中可以直接使用依賴對象從而達(dá)到傳遞依賴對象的目的。實施例
[0021]①系統(tǒng)的每個類都應(yīng)該繼承其他類或者實現(xiàn)接口,同時也要提供抽象類和接口類,因為抽象是依賴倒置的基礎(chǔ);
②對象的引用,在一個類中需要調(diào)用其他類的方法的時候,盡量使用接口或者抽象類的子類的對象;
③不要使用其它具體類的派生類;
④不要復(fù)寫父類的函數(shù)。
[0022]除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
【權(quán)利要求】
1.一種高低層模塊解耦的依賴倒置優(yōu)化方法,其特征在于,從優(yōu)先級來考慮,高層模塊的優(yōu)先級應(yīng)高于底層模塊,因為高層模塊是業(yè)務(wù)處理的核心部分,因此,底層模塊的改變不應(yīng)該導(dǎo)致高層模塊的改變,在設(shè)計模式中,應(yīng)該使高層模塊和底層模塊處于聯(lián)系而互不依賴的環(huán)境之下,從而實現(xiàn)高層模塊的復(fù)用和底層模塊的靈活性修改,這也是框架設(shè)計最核心的原則;具體步驟如下: ①通過構(gòu)造函數(shù)傳遞依賴對象: 在構(gòu)造函數(shù)中需要傳遞的參數(shù)是抽象類或接口的方式實現(xiàn); ②通過使用setter方法傳遞依賴對象: 在抽象類或者接口中,添加setXXX方法,以傳遞依賴對象; ③接口聲明實現(xiàn)依賴對象,即接口注入: 將抽象類或者接口作為參數(shù)傳遞,然后在底層模塊中可以直接使用依賴對象從而達(dá)到傳遞依賴對象的目的。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,依賴倒置原則就是要求開發(fā)過程依賴于抽象,而非依賴于具體,降低不同層次模塊之間的耦合。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,含有高層策略的模塊,獨立于它所控制的所有細(xì)節(jié),從而獨立于低層模塊,尋找解決方案。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,采用適配器模式進(jìn)行重構(gòu),定義新的抽象而非修改具體。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過抽象類或接口使各個類或模塊的實現(xiàn)彼此獨立,不相互影響,實現(xiàn)模塊間的松耦合,即契約式編程。
【文檔編號】G06F9/44GK104407843SQ201410564783
【公開日】2015年3月11日 申請日期:2014年10月22日 優(yōu)先權(quán)日:2014年10月22日
【發(fā)明者】王貴友, 崔樂樂, 徐宏偉 申請人:浪潮軟件集團(tuán)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
铅山县| 连州市| 饶平县| 新余市| 疏勒县| 遂平县| 平顶山市| 梨树县| 乌兰察布市| 通化县| 孟津县| 廊坊市| 鄢陵县| 建平县| 若尔盖县| 阿尔山市| 宝坻区| 和平县| 化德县| 犍为县| 瓦房店市| 宣汉县| 文安县| 壶关县| 吉安市| 高阳县| 玉溪市| 南华县| 得荣县| 大英县| 安达市| 区。| 秦皇岛市| 新宁县| 平度市| 广安市| 锡林郭勒盟| 铜梁县| 永和县| 延安市| 西藏|