介面和抽像類

2021-10-02 05:03:01 字數 761 閱讀 9079

1、抽象類主要用於關係密切的物件,而介面最適合為不相關的類提供通用功能。

2、如果要設計大的功能單元,則使用抽象類;如果要設計小而簡練的功能塊,則使用介面。

3、如果預計要建立元件的多個版本,則建立抽象類。介面一旦建立就不能更改。如果需要介面的新版本,必須建立乙個全新的介面。

4、如果建立的功能將在大範圍的全異物件間使用,則使用介面;如果要在元件的所有實現間提供通用的已實現功能,則使用抽象類。  

5、分析物件,提煉內部共性形成抽象類,用以表示物件本質,即「是什麼」。為外部提供呼叫或功能需要擴充時優先使用介面。

6、好的介面定義應該是具有專一功能性的,而不是多功能的,否則造成介面汙染。如果乙個類只是實現了這個介面的中乙個功能,而不得不去實現介面中的其他方法,就叫介面汙染。

7、盡量避免使用繼承來實現組建功能,而是使用黑箱復用,即物件組合。因為繼承的層次增多,造成最直接的後果就是當你呼叫這個類群中某一類,就必須把他們全部載入到棧中!後果可想而知。(結合堆疊原理理解)。同時,有心的朋友可以留意到微軟在構建乙個類時,很多時候用到了物件組合的方法。比如 asp.net中,page類,有server request等屬性,但其實他們都是某個類的物件。使用page類的這個物件來呼叫另外的類的方法和屬性,這個是非常基本的乙個設計原則。

介面代表著行為,實現它的不一定是同一類:比如飛機可以飛,鳥也可以飛,它們就可以實現 fly 的介面,但卻是不屬於一類的。

抽象類代表同一類的東西:鳥作為抽象類,可以實現老鷹,烏鴉等禽類,他們就屬於鳥一類的,但鳥這個類因為沒有確定是那種鳥,所以只能做抽象類。

C 語法學習抽像類 abstract

created by sharpdevelop.user administrator date 2008 9 3 time 上午 11 04 抽像類 abstract abstract修飾符可以和類,方法,屬性,索引器及事件一起使用.在類宣告中使用abstract修飾符以指示某個類只能是其他類的基類...

第十六章 複雜的抽像類結構

7 複雜的抽像結構 有的時候我們發現乙個抽像類不能靈活地解決複雜的問題,比如說我們有個基類 動物,它有6個純虛函式,睡覺sleep 吃eat 繁殖propagate 運動move 顯示年齡show 和說話speak 我們在哺乳動特類和鳥類便是從這個基類 動物類中派生出來,但是這裡有乙個問題,就是鳥類...

建立型設計模式 抽像工廠模式

建立型 抽像工廠模式 抽象工廠 furniturefactory 例如 風格 組合 外觀和行為 角色 協作使用者類在使用時,通過建立具體工廠例項,來建立由該工廠類生產的同一系列的產品 特點 實現 定義介面 public inte ce demofactory 實現介面 public class de...