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
版权声明: 本文为 InfoQ 作者【Christy LAW】的原创文章。
原文链接:【http://xie.infoq.cn/article/f5742e662c30d0f4607cfb2d3】。文章转载请联系作者。
评论