大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

面向對象設計原則

面向對象設計原則

熟練掌握和應用面向對象設計(Object Oriented Design,OOD)7大原則,是初/中級JAVA工程師向高級/資深工程師進階的一個必備技能,它可以大大提升程序的可復用性和可維護性,也是重構代碼的一大利器。7大設計原則包括開閉原則、里氏替換原則、依賴倒轉原則、單一職責原則、接口隔離原則、組合/聚合復用原則、迪米特法則。

1. 開閉原則

面向對象可復用設計原則中最基礎的原則便是開閉原則(Open-Closed Principle,OCP)。開閉原則指的是在設計一個對象(類、模塊、函數)時,應遵循或做到對擴展開放、對修改關閉,其核心思想是面向接口/抽象進行編程。比如第四方支付平臺,集成微信支付服務時,遵循開閉原則的話,正常的做法就是先抽象設計一個支付接口,然后微信支付類實現該支付接口。以后平臺集成更多如支付寶、華為、蘋果等支付服務時,只需要擴展一個對應支付方式的支付類即可,這樣既擴展了新的支付服務,同時避免了修改現有的支付接口以及微信支付類,最大限度保證了新代碼不會影響現有的業務代碼。這就是對擴展(新對象)開放,對修改(現有對象)關閉。

2. 里氏替換原則

里氏替換原則(Liskov Substitution Principle,LSP)要求設計一個對象時,代碼中任何父類對象可以出現的地方,子類都可以出現,即可以使用子類來代替父類。實現開閉原則的核心思想是面向接口/抽象進行編程,其關鍵步驟是抽象化,而父類和子類的繼承關系就是抽象化的具體體現,所以里氏替換原則是對實現抽象化的具體步驟的規范,它是對開閉原則的補充。比如教學平臺中新增加了學生用戶Student,和教師用戶Teacher一樣進入個人中心,都需要登錄,在設計或重構用戶登錄服務類時,抽象的用戶User類作為教師Teacher和學生Student的父類,此時需要遵循出現用戶User的地方,都可以使用新擴展的學生Student代替,當然也必須也可以使用教師Teacher代替,這樣設計出來的User類,對用戶登錄服務類來說,后續擴展更多的用戶User的子類比如家長、輔導員時,可以保證符合開閉原則。

3.依賴倒轉原則

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

4.單一職責原則

單一職責原則(Single Function Principle,SFP)又稱單一功能原則,它規范設計一個類應只實現單一或獨立的職責即業務功能。職責分明的設計,可以提高程序的可維護性。如果多個獨立的業務功能設計在同一類中,當一個或多個業務功能擴展或變動需要修改代碼時,可能會帶來沖突問題,降低可維護性。比如訂單服務中,又包含了用戶服務,重構用戶服務的代碼時,相當于重構訂單服務的代碼,這是不合理的,容易造成混淆。

5.接口隔離原則

接口隔離原則(Inteface Segregation Principle,ISP)指設計時不同的功能應定義在不同的接口上,避免實現類依賴不需要的接口,換個角度理解就是一個類應該依賴盡量少的接口或實現類,減少程序的冗余性和復雜性。

6.組合/聚合復用原則

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

7.迪米特法則

迪米特法則(Low of Demeter,LoD)指設計一個對象時,盡可能少的與其它對象發生相互作用,即盡可能少的了解或依賴其它對象,降低耦合度。廣義的迪米特法則,在類設計的具體操作上,主要通過以下三點來體現:

• 優先考慮將一個類設置為final不變類

• 盡量降低一個類及其成員變量的訪問權限

• 謹慎使用序列化

全部教程
主站蜘蛛池模板: 中文字幕一区二区在线观看 | 免费一级特黄特色黄大任片 | www色综合 | 另类色综合 | 久操网在线 | 国产午夜精品尤物福利视频 | 九九精品免视频国产成人 | 老子午夜精品我不卡影院 | 春色www视频在线观看 | 亚洲 欧美 另类中文字幕 | 全部精品孕妇色视频在线 | 香蕉视频在线视频 | 最新国产福利 | 一区二区三区高清 | 欧美成人在线观看 | 午夜国产福利 | 91福利合集 | 成人午夜私人影院入口 | 999精品久久久中文字幕蜜桃 | 亚洲欧美日韩在线观看二区 | 国内精品视频九九九九 | 爱操视频在线观看 | 99精品在线免费 | 一区二区三区网站在线免费线观看 | 国产成人a毛片在线 | 日日干天天插 | 99精品久久久久久久免费看蜜月 | 天天cao| 久久精品国产欧美成人 | 成人午夜在线观看 | 四虎影视在线影院在线观看观看 | 久久精品免费一区二区视 | 久久精品三级视频 | 变态捡到女婴h养成调教 | 一级毛片不卡免费看老司机 | 免费观看美女光子让男人玩 | 中文字幕亚洲欧美日韩高清 | 久久久久久综合成人精品 | 亚洲艹逼 | 成年女人视频免费观看一 | 日韩毛片免费观看 |