Java語言深入:究竟什么叫面向接口編程
Java語言深入:究竟什么叫面向接口編程
面向接口編程即按此理念編程。在日常工作中,你可能已經在按照接口編程,但如果沒有這種意識,那只是被動實現這一思想。比如,抱怨代碼改動影響接口,或模塊改動導致其他模塊大規模調整等。Booch提到的Interaction Designer,是更高層次的設計者。目前,這類人才是我們軟件設計團隊中最缺乏的。從深層次理解接口,它是定義與實現的分離。通常實現系統時,定義與實現是一體的,但為了更好地規范系統,所有定義與實現應分離,盡管這可能增加復雜性。接口反映系統設計人員對系統的抽象理解。接口分為兩類:個體抽象對應抽象體,個體某方面抽象對應抽象面。一個體可能有多個抽象面,抽象體與抽象面有區別。
導讀面向接口編程即按此理念編程。在日常工作中,你可能已經在按照接口編程,但如果沒有這種意識,那只是被動實現這一思想。比如,抱怨代碼改動影響接口,或模塊改動導致其他模塊大規模調整等。Booch提到的Interaction Designer,是更高層次的設計者。目前,這類人才是我們軟件設計團隊中最缺乏的。從深層次理解接口,它是定義與實現的分離。通常實現系統時,定義與實現是一體的,但為了更好地規范系統,所有定義與實現應分離,盡管這可能增加復雜性。接口反映系統設計人員對系統的抽象理解。接口分為兩類:個體抽象對應抽象體,個體某方面抽象對應抽象面。一個體可能有多個抽象面,抽象體與抽象面有區別。
在一個面向對象的系統中,系統功能通過眾多不同對象協作完成。這些對象內部實現細節對設計人員不重要,關鍵在于它們之間的協作方式。這包括類與類之間的通信以及模塊間的交互,這些都需要在系統設計初期考慮,也是設計的核心工作。面向接口編程即按此理念編程。在日常工作中,你可能已經在按照接口編程,但如果沒有這種意識,那只是被動實現這一思想。比如,抱怨代碼改動影響接口,或模塊改動導致其他模塊大規模調整等。Booch提到的Interaction Designer,是更高層次的設計者。目前,這類人才是我們軟件設計團隊中最缺乏的。從深層次理解接口,它是定義與實現的分離。通常實現系統時,定義與實現是一體的,但為了更好地規范系統,所有定義與實現應分離,盡管這可能增加復雜性。接口反映系統設計人員對系統的抽象理解。接口分為兩類:個體抽象對應抽象體,個體某方面抽象對應抽象面。一個體可能有多個抽象面,抽象體與抽象面有區別。接口設計還需考慮環境因素。任何接口都是在特定環境中產生的,環境定義及變化對接口影響不可忽視,脫離原有環境,接口失去意義。組件開發模型(3C)強調接口設計的重要性,它們相互依存,缺一不可。面向對象以對象為單位考慮屬性及方法,面向過程則以具體流程考慮實現。接口設計與非接口設計針對復用技術,與面向對象不是同一概念。UML中的interface是協議的另一種說法,而不是特定技術的接口。面向接口編程即面向抽象協議編程,實現時嚴格按協議。這正如Bill Joy所說,一邊翻rfc,一邊寫代碼。面向對象編程涉及抽象和具象,二者是矛盾統一體,不可能只有抽象。懂得抽象的人明白此理,但有些人只知具象而忽視抽象。因此,僅有接口無實現或僅有實現無接口都是反面向對象編程的。
Java語言深入:究竟什么叫面向接口編程
面向接口編程即按此理念編程。在日常工作中,你可能已經在按照接口編程,但如果沒有這種意識,那只是被動實現這一思想。比如,抱怨代碼改動影響接口,或模塊改動導致其他模塊大規模調整等。Booch提到的Interaction Designer,是更高層次的設計者。目前,這類人才是我們軟件設計團隊中最缺乏的。從深層次理解接口,它是定義與實現的分離。通常實現系統時,定義與實現是一體的,但為了更好地規范系統,所有定義與實現應分離,盡管這可能增加復雜性。接口反映系統設計人員對系統的抽象理解。接口分為兩類:個體抽象對應抽象體,個體某方面抽象對應抽象面。一個體可能有多個抽象面,抽象體與抽象面有區別。
為你推薦