新聞中心
這篇文章主要講解了“面向?qū)ο笤O計原則是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“面向?qū)ο笤O計原則是什么”吧!
創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站建設與策劃設計,槐蔭網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設10年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:槐蔭等地區(qū)。槐蔭做網(wǎng)站價格咨詢:028-86922220
設計原則是設計模式的理論基礎,設計模式就是它們的實踐。七大設計原則簡單歸納如下表所示:
設計原則 | 概括 | 目的 |
---|---|---|
開閉原則 | 對擴展開放,對修改關閉 | 降低維護帶來的新風險 |
里氏替換原則 | 不要破壞繼承體系,子類重寫方法功能發(fā)生改變,不應該影響父類方法的含義 | 防止繼承泛濫 |
依賴倒置原則 | 高層不應該依賴低層,要面向接口編程 | 更利于代碼結(jié)構(gòu)的升級擴展 |
單一職責原則 | 一個類只干一件事,實現(xiàn)類要單一 | 便于理解,提高代碼的可讀性 |
接口隔離原則 | 一個接口只干一件事,接口要精簡單一 | 功能解耦,高聚合、低耦合 |
迪米特原則 | 不該知道的不要知道,一個類應該保持對其它對象最少的了解,降低耦合度 | 減少代碼臃腫 |
合成復用原則 | 盡量使用組合或者聚合關系實現(xiàn)代碼復用,少使用繼承 | 降低代碼耦合 |
1、開閉原則
原則思想: 軟件實體應當對擴展開放,對修改關。
描述:一個軟件產(chǎn)品在生命周期內(nèi),都會發(fā)生變化,既然變化是一個既定的事實,當應用的需求改變時,在不修改軟件實體的源代碼或者二進制代碼的前提下,可以擴展模塊的功能,使其滿足新的需求。
優(yōu)點:提高代碼的可復用性,提高軟件的可擴展性和可維護性。
2、里氏替換原則
思想: 繼承必須確保超類所擁有的性質(zhì)在子類中仍然成。
描述:子類可以擴展父類的功能,但不能改變父類原有的功能。子類可以實現(xiàn)父類的抽象方法,但不能覆蓋父類的非抽象方法,子類中可以增加自己特有的方法。 反映了基類與子類之間的關系,是對開閉原則的補充,是對實現(xiàn)抽象化的具體步驟的規(guī)范。
優(yōu)點:增加程序的健壯性, 類的擴展不會給已有的系統(tǒng)引入新的錯誤,降低了代碼出錯的可能性。
3、依賴倒置原則
思想:高層次的模塊不應該依賴于低層次的模塊,它們都應該依賴于抽象,抽象不應該依賴于具體實現(xiàn),具體實現(xiàn)應該依賴于抽象。
描述: 在軟件設計中,細節(jié)具有多變性,而抽象層則相對穩(wěn)定,因此以抽象為基礎搭建起來的架構(gòu)要比以細節(jié)為基礎搭建起來的架構(gòu)要穩(wěn)定得多。 使用接口或者抽象類的目的是制定好規(guī)范和契約,而不去涉及任何具體的操作,把展現(xiàn)細節(jié)的任務交給它們的實現(xiàn)類去完成。依賴倒置原則是實現(xiàn)開閉原則的重要途徑之一,它降低了客戶與實現(xiàn)模塊之間的耦合。
優(yōu)點: 降低類間的耦合性; 提高代碼的可讀性和可維護性; 減少并行開發(fā)引起的風險。
4、單一職責原則
思想:一個類(或方法www.jqmms.com)只負責一件事情。 就是控制類的粒度大小、將對象解耦、提高其內(nèi)聚性。
描述: 又稱單一功能原則,這里的職責是指類變化的原因,單一職責原則規(guī)定一個類應該有且僅有一個引起它變化的原因,否則類應該被拆分。 如果一個對象承擔了太多的職責,至少存在兩個缺點:1、一個職責的變化可能會削弱或者抑制這個類實現(xiàn)其他職責的能力;2、當客戶端需要該對象的某一個職責時,不得不將其他不需要的職責全都包含進來,從而造成冗余代碼或代碼的浪費。
優(yōu)點:降低類和類的耦合, 降低類的復雜度, 提高可讀性,增加可維護性和可拓展性,降低可變性的風險。
5、接口隔離原則
原則思想:類和類之間應該建立在最小接口的上。
描述: 要求程序員盡量將臃腫龐大的接口拆分成更小的和更具體的接口,讓接口中只包含客戶感興趣的方法。 要為各個類建立它們需要的專用接口,而不要試圖去建立一個很龐大的接口供所有依賴它的類去調(diào)用。
優(yōu)點:提高程序的靈活度,提高內(nèi)聚,減少對外交互,使得最小的接口做最多的事情。
注意: 接口的粒度需要合理定義,如果 定義過小,則會造成接口數(shù)量過多,使設計復雜化;如果定義太大,靈活性降低,無法提供定制服務,給整體項目帶來無法預料的風險。
接口隔離原則和單一職責都是為了提高類的內(nèi)聚性、降低它們之間的耦合性,體現(xiàn)了封裝的思想,但兩者是不同的:
# 單一職責原則注重的是職責,而接口隔離原則注重的是對接口依賴的隔離。
# 單一職責原則主要是約束類,它針對的是程序中的實現(xiàn)和細節(jié);接口隔離原則主要約束接口,主要針對抽象和程序整體框架的構(gòu)建。
6、迪米特原則(最少知道)
原則思想:一個對象應當對其他對象有盡可能少地了解,簡稱類間解耦
描述:一個類盡量減少自己對其他對象的依賴,原則是低耦合,高內(nèi)聚,只有使各個模塊之間的耦合盡量的低,才能提高代碼的復用率。
優(yōu)點:低耦合,高內(nèi)聚,提高類的可復用性和系統(tǒng)的可擴展性。
注意: 過度使用迪米特法則會使系統(tǒng)產(chǎn)生大量的中介類,從而增加系統(tǒng)的復雜性,使模塊之間的通信效率降低。所以,在釆用迪米特法則時需要反復權(quán)衡,確保高內(nèi)聚和低耦合的同時,保證系統(tǒng)的結(jié)構(gòu)清晰。
7、合成復用原則
原則思想:由于合成或聚合可以將已有對象納入到新對象中,使之成為新對象的一部分,因此新對象可以調(diào)用已有對象的功能。
描述: 它要求在軟件復用時,要盡量先使用組合或者聚合等關聯(lián)關系來實現(xiàn),其次才考慮使用繼承關系來實現(xiàn)。 一般而言,如果一個角色得到了更多的責任,那么可以使用合成/聚合關系將新的責任委派到合適的對象。當然,這種復用也有缺點。最主要的缺點就是通過這種復用建造的系統(tǒng)會有較多的對象需要管理。
優(yōu)點: 維持了類的封裝性,成分對象的內(nèi)部細節(jié)是新對象看不見的,所以這種復用又稱為“黑箱”復用。新舊類之間的耦合度低,這種復用所需的依賴較少,新對象存取成分對象的唯一方法是通過成分對象的接口。復用的靈活性高,這種復用可以在運行時動態(tài)進行,新對象可以動態(tài)地引用與成分對象類型相同的對象。
總結(jié)
實際上,這些原則的目的只有一個:降低對象之間的耦合,增加程序的可復用性、可擴展性和可維護性。 在實際開發(fā)過程中,并不是一定要求所有代碼都遵循設計原則,而是要綜合考慮人力、時間、成本、質(zhì)量,不刻意追求完美,要在適當?shù)膱鼍白裱O計原則。這體現(xiàn)的是一種平衡取舍,可以幫助我們設計出更加優(yōu)雅的代碼結(jié)構(gòu)。
感謝各位的閱讀,以上就是“面向?qū)ο笤O計原則是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對面向?qū)ο笤O計原則是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!
當前標題:面向?qū)ο笤O計原則是什么
網(wǎng)站鏈接:http://ef60e0e.cn/article/jgedcc.html