DesignPattern設(shè)計原則有哪些

這篇文章給大家分享的是有關(guān)Design Pattern設(shè)計原則有哪些的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)公司是專業(yè)的特克斯網(wǎng)站建設(shè)公司,特克斯接單;提供網(wǎng)站制作、成都網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行特克斯網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

Design Pattern 筆記

  1. 過于僵硬:不能輕松的加入新的功能

  2. 過于脆弱:修改一處可能波及到很多其他的地方

  3. 復(fù)用率低:現(xiàn)有的代碼依賴于其他的東西,想要重用這個代碼就很困難

  4. 黏度過高:改動總是以破壞原始意圖和原始設(shè)計框架的方式進行

設(shè)計原則

1、OCP原則(開閉原則)

Software entities should be opon for extension but closed for modification.
對可變性的封裝:當(dāng)一個組件被認(rèn)為是可變的時候,應(yīng)該對這個可變性的組件進行封裝,以便使其內(nèi)部的變化只作用在內(nèi)部范圍內(nèi),不會延伸到其他地方。
一個可變性的不同的表象就是同一個繼承結(jié)構(gòu)中的具體的子類。在設(shè)計的時候不應(yīng)該把不同的可變性混合在一起。

2、里氏代換原則:
如果每個C1類型的對象O1,都有一個C2類型的對象O2,使得以C1定義的程序里面的O1都可以換成O2,那么就說C2是C1的一個子類。
里氏代換原則要求在使用基類的地方其子類也一定適用,這條原則是在進行OOD時候?qū)ο蟪橄筮^程中的一個驗證方法。比若說設(shè)計了一個超類A,我們又設(shè)計了A的子類,那么檢查我們的設(shè)計是否合理,就應(yīng)該根據(jù)里氏代換原則,看看應(yīng)用代碼中使用到A的對象的地方,時候可以換成其子類對象也同樣成立,如果不成立那么則證明子類并不真正是超類的孩子。

3、依賴倒轉(zhuǎn)關(guān)系:
通常在設(shè)計分層結(jié)構(gòu)的時候,我們總是設(shè)計成高層依賴于低層,而依賴倒轉(zhuǎn)的要求就是低層要依賴于高層,這里面簡單的例子就是Java中的接口技術(shù),根據(jù)依賴倒轉(zhuǎn)關(guān)系原則,就有了針對接口編程概念:一個具體的Java類應(yīng)該只實現(xiàn)其抽象類和接口中的方法,而不是給出多余的方法。

4、抽象類于接口:
a.抽象類可實現(xiàn)部分功能,而接口不可以,所以抽象類的子類就擁有了抽象類實現(xiàn)的那部分功能。
b.抽象類的實現(xiàn)存在于其等級結(jié)構(gòu)中,而接口的實現(xiàn)不僅可以實現(xiàn)此接口,同時也可以實現(xiàn)其他接口。這樣這個子類可以對外提供不同的服務(wù)。
c.如果在已有的子類,為其定義一個抽象的父類是比較困難的,因為這會改變其等級結(jié)構(gòu),而為其定義一個接口卻是容易的。
d.接口是定義混合型類型的理想工具。


5、ISP(接口分離原則):
這個原則強調(diào)的是如何來設(shè)計接口,它強調(diào)了應(yīng)該按角色來對接口劃分,而不應(yīng)該把所有角色的功能都歸結(jié)到一個接口中去。它強調(diào)不要把很多接口作為優(yōu)化對象。
例如:有一個網(wǎng)站有一個全文搜索的功能,系統(tǒng)有一個Interface來提供所有的操作功能,比如說管理索引,搜索操作等等。根據(jù)ISP原則應(yīng)該按角色劃分,對每一個角色都設(shè)計一個接口,如上例就應(yīng)該分別設(shè)計一個索引管理接口和搜索操作接口。
6、CARP合成/聚合復(fù)用原則:
7、LoD迪米特原則:也成為最少知識原則
如果一個類不必與其他類直接通信,那么兩個類就不應(yīng)該相互作用,也就是說彼此都不知道對方的存在。如果一個類需要調(diào)用另外一個類的方法,可以通過第三方來調(diào)用。
這個原則就是為了封閉組件的可變性,是它們的變化不會波及到其他地方。

感謝各位的閱讀!關(guān)于“Design Pattern設(shè)計原則有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

網(wǎng)站欄目:DesignPattern設(shè)計原則有哪些
分享網(wǎng)址:http://bm7419.com/article30/jdgeso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站制作外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、云服務(wù)器

廣告

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

網(wǎng)站托管運營