写点什么

Week 2 作業一 : OOD 5 principles [SOLID]

用户头像
Christy LAW
关注
发布于: 2020 年 09 月 27 日
Week 2 作業一 : OOD 5 principles [SOLID]

第一題

依賴倒置原則(Dependency Inversion Principle)(簡稱 DIP)是五個 面向對象設計原則 (OOD principles)【SOLID】的其中一個(i.e. D)。


DIP 倒置了層次結構的依賴關係(和模塊或包的依賴關係和開發順序和作用),由【自下而上】倒置成了【自上而下】。由本來的【低層模塊實現後,抽像出一個接口給高層模塊來調用】變成【高層模塊定義一個接口(interface)(這個接口必須屬於高層模塊),然後高層模塊調用(use)這個接口,低層模塊實現(implement)這個接口】。


由:

變成:


好處:高層模塊和低層模塊都依賴於抽象(意思是那個接口),而不是彼此,所以提高了高層模塊的可覆用性(因為高層模塊不再需要依賴於低層模塊),於是可以以一種自上而下的設計方法,俯瞰範圍的視野來進行軟件設計,更符合軟件設計【自上而下】的特性。


實際應用示例:我們日常軟件開發的框架都是以 DIP(例如 Tomcat,Spring,JUnits)的概念設計出來的。框架設計核心是【框架調用代碼,代碼不要調用框架】。框架不依賴我們的代碼,但可以調用我們的代碼 - 關鍵在於,框架(高層)定義了接口,我們的代碼(低層)只需要實現這些接口,然後我們的代碼就可以被框架調用了。 好萊塢原則【我(高層)會打給你(低層),你別打給我!】生動的描述了上述 DIP 的精髓。


第二題


參考這裏 http://www.cs.sjsu.edu/~pearce/modules/lectures/oop/basics/interfaces 的圖 畫的 :)


ISP 接口分離原則 (Interface Segregation Principle) => 指出應該如何設計一個接口 => 從 client application 的需要出發,強調不應該強迫 client application 依賴它們不需要的方法。


應用 接口分離原則 之前 Before applying Interface Segregation Principle


應用 接口分離原則 之後 After applying Interface Segregation Principle


发布于: 2020 年 09 月 27 日阅读数: 78
用户头像

Christy LAW

关注

Christy | Software Engineer 2020.03.19 加入

Github : https://github.com/christypacc21

评论

发布
暂无评论
Week 2 作業一 : OOD 5 principles [SOLID]