黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 七大面向?qū)ο笤O(shè)計原則

七大面向?qū)ο笤O(shè)計原則

更新時間:2020-10-15 17:18:30 來源:動力節(jié)點 瀏覽1196次

面向?qū)ο蟪绦蛟O(shè)計是當今主流的程序設(shè)計范型,已經(jīng)取代了早期的“結(jié)構(gòu)化”過程化程序設(shè)計開發(fā)技術(shù),java是完全面向?qū)ο蟮挠嬎銠C語言,要使用面向?qū)ο笫絹碓O(shè)計java程序。在前面我們學(xué)習了面向?qū)ο蟪绦蛟O(shè)計的整個思想與概述,另外還需要知道面向?qū)ο笤O(shè)計原則是什么,這樣才能用java語言寫出程序。

image.png

面向?qū)ο笤O(shè)計原則一共有七個,包括:開閉原則、里氏替換原則、依賴倒轉(zhuǎn)原則、單一職責原則、接口隔離原則、組合/聚合復(fù)用原則、迪米特法則。下面分別來介紹這七大面向?qū)ο笤O(shè)計原則:


1、開閉原則

面向?qū)ο罂蓮?fù)用設(shè)計原則中最基礎(chǔ)的原則便是開閉原則,開閉原則指的是在設(shè)計一個對象(類、模塊、函數(shù))時,應(yīng)遵循或做到對擴展開放、對修改關(guān)閉,其核心思想是面向接口/抽象進行編程。系統(tǒng)的抽象化設(shè)計,是開放關(guān)閉原則的關(guān)鍵。可以通過接口、抽象類定義系統(tǒng)的抽象層,通過實現(xiàn)類進行擴展,增加新功能只需增加新的實現(xiàn)類,而無需修改抽象層,從而實現(xiàn)在不修改已有代碼的情況下實現(xiàn)系統(tǒng)擴展。


2、里氏替換原則

里氏替換原則要求設(shè)計一個對象時,代碼中任何父類對象可以出現(xiàn)的地方,子類都可以出現(xiàn),即可以使用子類來代替父類。實現(xiàn)開閉原則的核心思想是面向接口/抽象進行編程,其關(guān)鍵步驟是抽象化,而父類和子類的繼承關(guān)系就是抽象化的具體體現(xiàn),所以里氏替換原則是對實現(xiàn)抽象化的具體步驟的規(guī)范,它是對開閉原則的補充。


3、依賴倒轉(zhuǎn)原則

依賴倒轉(zhuǎn)原則指程序中要依賴抽象(接口/抽象類)而不是具體的實現(xiàn)(實現(xiàn)類)進行編程,即面向接口/抽象進行編程,這樣可以最大程度降低模塊之間的耦合。比如訂單服務(wù)中,會調(diào)用(依賴)支付服務(wù)以完成訂單的支付。此時的訂單服務(wù)實現(xiàn)類代碼中,聲明或持有的應(yīng)該是一個支付服務(wù)PayService接口,而不是具體實現(xiàn)類比如Alipay或WeChatPay,所有需要用到支付服務(wù)的地方,調(diào)用的都是PayService接口變量,即代碼中都是接口,等到在運行時才實例化或注入具體的實現(xiàn)類,編寫代碼時不需要關(guān)心具體實現(xiàn)類,也就是面向接口/抽象編程。這樣,在應(yīng)用程序擴展或集成新的支付服務(wù)時,原來的訂單服務(wù)代碼可以不需要進行修改任何代碼,這樣也就符合了開閉原則。


4、單一職責原則

一個類只負責一個功能領(lǐng)域中的相應(yīng)職責。就一個類而言,應(yīng)該只有一個引起它變化的原因。不同的類具備不同的職責,各司其職,有以下優(yōu)點:(1)可以降低類的復(fù)雜度,一個類只負責一項職責,其邏輯肯定要比負責多項職責簡單的多;(2)類的可讀性高,進而可以提高系統(tǒng)的可維護性;(3)變更引起的風險降低,變更是必然的,如果單一職責原則遵守的好,當修改一個功能時,可以顯著降低對其他功能的影響。單一職責原則是最簡單但又最難運用的原則,難點在于職責和粒度劃分。一個類往往具有多重職責,而發(fā)現(xiàn)類的多重職、職責粒度拆分的大小需要要設(shè)計人員具有較強的分析設(shè)計能力和相關(guān)實踐經(jīng)驗。


5、接口隔離原則

接口隔離原則指設(shè)計時不同的功能應(yīng)定義在不同的接口上,避免實現(xiàn)類依賴不需要的接口,換個角度理解就是一個類應(yīng)該依賴盡量少的接口或?qū)崿F(xiàn)類,減少程序的冗余性和復(fù)雜性。在使用接口隔離原則時,我們需要注意控制接口的粒度,接口不能太小,如果太小會導(dǎo)致系統(tǒng)中接口泛濫,不利于維護;接口也不能太大,太大的接口將違背接口隔離原則,靈活性較差,使用起來很不方便。一般而言,接口中僅包含為某一類用戶定制的方法即可,不應(yīng)該強迫客戶依賴于那些它們不用的方法。


6、組合/聚合復(fù)用原則

組合/聚合復(fù)用原則也叫做合成復(fù)用原則,它指在一個新的對象中引入/注入現(xiàn)有的對象以達到功能復(fù)用和擴展的目的。簡單講就是盡量使用組合/聚合而不要使用繼承。


7、迪米特法則

迪米特法則指設(shè)計一個對象時,盡可能少的與其它對象發(fā)生相互作用,即盡可能少的了解或依賴其它對象,降低耦合度。廣義的迪米特法則,在類設(shè)計的具體操作上,主要通過以下三點來體現(xiàn):(1)優(yōu)先考慮將一個類設(shè)置為final不變類;(2)盡量降低一個類及其成員變量的訪問權(quán)限;(3)謹慎使用序列化.


希望上面對面向?qū)ο笤O(shè)計原則的介紹可以幫助到大家,尤其是希望java零基礎(chǔ)的朋友們對面向?qū)ο蟾钊氲睦斫狻J炀氄莆掌叽竺嫦驅(qū)ο笤O(shè)計原則是初級java程序員向中高級程序員進階的基礎(chǔ),應(yīng)用好面向?qū)ο笤O(shè)計原則可以提升程序的可復(fù)用性和可維護性,也是重構(gòu)代碼的一大利器。


提交申請后,顧問老師會電話與您溝通安排學(xué)習

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 成年网站在线观看视频 | 天天摸天天碰中文字幕 | 亚洲欧美一区二区久久 | 中文字幕精品一区二区日本大胸 | 日韩视频第二页 | 波多野结衣免费免费视频一区 | 日本夜夜 | 亚洲国产成人久久一区www | 国产精品入口麻豆免费观看 | 午夜久久免影院欧洲 | 午夜资源网 | 免费看欧美日韩一区二区三区 | 久久丝袜视频 | 亚洲成人免费在线观看 | 在线看欧美日韩中文字幕 | 妞干网免费视频 | 看美女日批 | 一区二区欧美视频 | 99久久这里只精品麻豆 | 久草高清视频 | 男人透女人超爽视频免费 | 日韩在线www | 成年人影院在线观看 | 欧美日韩视频在线第一区二区三区 | 国产精品123| 色一情一乱一乱91av | 日韩欧美中字 | 天天干天天玩天天操 | 久久男女 | 黄色一级录像片 | 国产一级真人毛爱做毛片 | 亚洲国产91在线 | 国产成人综合一区精品 | 国产免费黄色网址 | 在线中文字幕一区 | 91欧洲在线视精品在亚洲 | 国产午夜亚洲精品国产 | 久草午夜 | 亚洲第一视频在线播放 | 久久精品视频网站 | 亚洲依依成人综合网站 |