中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Java設計模式-目的和設計原則-創(chuàng)新互聯(lián)

1、序言
軟件設計模式(Design pattern),又稱設計模式,是一套被反復使用、多數(shù)人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供黎平企業(yè)網站建設,專注與做網站、網站制作、H5頁面制作、小程序制作等業(yè)務。10年已為黎平眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網站制作公司優(yōu)惠進行中。

打個比方就像蓋大廈和小木屋,當功能簡單,函數(shù)和代碼少時,我們能較輕松的直接上手;但如果是像大廈那樣,功能復雜,需求可能變化且代碼量大時,我們就不能直接上手就來,需要像建筑圖紙那樣提前規(guī)劃設計,那設計模式就像軟件(程序)的建筑圖紙。

2、設計模式分類

**創(chuàng)建型模式:**共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

**結構型模式:**共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。

**行為型模式:**共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問者模式、中介者模式、解釋器模式。

3、設計模式的目的

代碼可重用性 相同功能得代碼,不用多次編寫,降低冗余

可讀性 編程規(guī)范性,便于其他程序員的閱讀和理解
可擴展性 當需要增加新的功能時候,非常方便維護
可靠性 當我們增加新的功能,對原有得功能沒有影響

使程序呈現(xiàn)高內聚 低耦合得特性 模塊內部緊密,但模塊之間依賴小,一者出錯,不影響他者。

4、設計模式的七大原則

4.1 單一職責原則(Single Responsibility Principle)

定義:一個類只負責一個功能領域中的相應職責,而不是變成萬能的

? 優(yōu)點:

  • 類的復雜性降低,實現(xiàn)什么職責都有清晰明確的定義;
  • 可讀性提高,復雜性降低,那當然可讀性提高了;
  • 可維護性提高,可讀性提高,那當然更容易維護了;
  • 變更引起的風險降低,變更時必不可少的,如果接口的單一職責做得好,一個接口修改只對相應的實現(xiàn)類有影響,對其他的接口無影響,這對系統(tǒng)的擴展性、維護性都有非常大的幫助。

4.2 開閉原則(Open-Closed Principle, OCP)

定義:軟件實體應對擴展開放,而對修改關閉。開閉原則的關鍵在于抽象化。在程序需要進行拓展的時候,不能去修改原有的代碼,實現(xiàn)一個熱插拔的效果。簡單來說:就是為了使程序的擴展性好,易于維護和升級。

4.3里氏代換原則(Liskov Substitution Principle)

定義:所有引用基類對象的地方能夠透明地使用其子類的對象【子類不應該覆蓋父類的非抽象方法】。里氏代換原則是實現(xiàn)開閉原則的重要方式之一,需要注意以下幾點:

(1)子類的所有方法必須在父類中聲明,或子類必須實現(xiàn)父類中聲明的所有方法。

(2)盡量把父類設計為抽象類或者接口,讓子類繼承父類或實現(xiàn)父接口,并實現(xiàn)在父類中聲明的方法。

(3)子類不應該覆蓋父類的非抽象方法(可以重載,但一定要調父類的方法)

4.4 依賴倒轉原則(Dependence Inversion Principle, DIP)

定義:抽象不應該依賴于細節(jié),細節(jié)應該依賴于抽象。是開閉原則的基礎?!究梢酝ㄟ^依賴注入的方式實現(xiàn)】,依賴注入是指當一個對象要與其他對象發(fā)生依賴關系時,通過抽象來注入所依賴的對象。常用的注入方式有三種,分別是:構造注入,設值注入(Setter注入)和接口注入。

(1)構造注入是指通過構造函數(shù)來傳入具體類的對象。

(2)設值注入是指通過Setter方法來傳入具體類的對象。

(3)接口注入是指通過在接口中聲明的業(yè)務方法來傳入具體類的對象。

這些方法在定義時使用的是抽象類型,在運行時再傳入具體類型的對象,由子類對象來覆蓋父類對象。

開閉原則是目標,里氏代換原則是基礎,依賴倒轉原則是手段。

4.5 接口隔離原則(Interface Segregation Principle, ISP)

定義:使用多個專門的接口,而不使用單一的總接口。【需要把控好接口的粒度】

注意事項:

1)在使用接口隔離原則時,我們需要注意控制接口的粒度。

(2)接口不能太小。如果太小會導致系統(tǒng)中接口泛濫,不利于維護;

(3)接口也不能太大。太大的接口將違背接口隔離原則,靈活性較差,使用起來很不方便。

一般而言,接口中僅包含為某一類用戶定制的方法即可,不應該強迫客戶依賴于那些它們不用的方法。

4.6合成復用原則(Composite Reuse Principle, CRP)

定義:復用時要盡量使用組合/聚合關系(關聯(lián)關系),少用繼承。

通過繼承來進行復用的主要問題在于繼承復用會破壞系統(tǒng)的封裝性。因為繼承會將基類的實現(xiàn)細節(jié)暴露給子類,由于基類的內部細節(jié)通常對子類來說是可見的,所以這種復用又稱“白箱”復用,如果基類發(fā)生改變,那么子類的實現(xiàn)也不得不發(fā)生改變;從基類繼承而來的實現(xiàn)是靜態(tài)的,不可能在運行時發(fā)生改變,沒有足夠的靈活性。

一般而言,如果兩個類之間是“Has-A”的關系應使用組合或聚合,如果是“Is-A”關系可使用繼承?!癐s-A"是嚴格的分類學意義上的定義,意思是一個類是另一個類的"一種”;而"Has-A"則不同,它表示某一個角色具有某一項責任。

4.7 迪米特法則(最少知道)(Law of Demeter, LoD)

定義:一個軟件實體應當盡可能少地與其他實體發(fā)生相互作用,使得系統(tǒng)功能模塊相對獨立。

相關文章
Java設計模式之七大設計原則

Java設計模式的七大原則

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

當前標題:Java設計模式-目的和設計原則-創(chuàng)新互聯(lián)
網站地址:http://www.rwnh.cn/article38/doegpp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網站、網站制作、企業(yè)建站、全網營銷推廣、標簽優(yōu)化、外貿網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站優(yōu)化排名
博兴县| 榆中县| 托克逊县| 萝北县| 赤城县| 通海县| 嵊泗县| 咸阳市| 攀枝花市| 商河县| 吉木萨尔县| 龙胜| 垣曲县| 舟曲县| 时尚| 金阳县| 望江县| 南开区| 瓮安县| 齐河县| 溧水县| 二连浩特市| 平江县| 望江县| 新建县| 千阳县| 襄汾县| 金阳县| 溆浦县| 商水县| 苗栗市| 佛教| 肇州县| 宜川县| 彰武县| 宁夏| 银川市| 阿坝| 门头沟区| 津市市| 沂源县|