oc隨筆二 組合 繼承

2022-08-29 12:33:17 字數 1042 閱讀 6854

在oc中如果沒有使用arc的話,手動管理記憶體一定要注意處理好「野指標」,通常我們在釋放指標的指向的位址時,都要將指標賦值為nil,這樣能有效的防止野指標。常用的關鍵字:retain、assign 、strong、weak

組合和繼承都是提高**可重用性的手段,在有些情況下,採用組合關係或者繼承關係能完成同樣的任務,組合和繼承存在著對應關係:組合中的整體類和繼承中的子類對應,組合中的區域性類和繼承中的父類對應。組合是has-a的關係,繼承是is-a的關係。組合最主要的優勢是不會破壞封裝,是系統具有較好的松耦合性,更加易於維護。繼承缺點:(1)當層級越來越多時,假如每個層級都有例項變數,那麼最下層的子類繼承的例項變數就會超級多,顯得沉重;(2)當訊息傳遞從子類往上時,層級越多,效率就越低下。組合缺點:需要建立比繼承更多的物件,耦合度比繼承弱。

繼承的一些注意事項:

a.子類的例項變數不能與父類重名。

b.子類初始化出的物件既可以呼叫自己的函式,也可以呼叫父類的函式,因為都繼承過來了。

c. 父類的例項變數型別在子類中不變,子類只能直接訪問父類中的public和protected型別的例項變數,父類和子類直有            public可以直接用 -> 呼叫。

d.子類的方法可以覆蓋父類的方法(如果方法名、引數個數、引數型別、方法返回值型別都一樣時),子類的方法一般更為具體,父類的方法更抽象。

e.多級繼承下的初始化規則,一是應該重新載入init;二是在自己類中寫指定的初始化方法;三是自己類的init方法呼叫自己類的指定初始化方法;四是自己類的指定初始化方法呼叫父類的指定初始化方法。 否則會出現遞迴呼叫。

f.訊息查詢規則,先查詢本類,然後再往父類查詢,需要注意的是有時雖然用b類建立了b物件,用[b display]呼叫display方法,且display呼叫了父類的[super display]方法,但物件還是本類物件,所以值還是本類初始化的那個值。

組合注意:

a.組合與繼承實現的功能雖然差不多,但他們實現的形式不一樣,區分就需要記住他們各自的形式。

b.能使用組合的地方盡量使用組合。

例:aspoint

asrectangle

main

12 組合模式

1.說明 請參見本文第一章 2.組合模式說明 組合模式 將物件組合成樹形介面以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件具有一致性。為了保持整體和區域性的一致性,整體和區域性具有相同的介面,從而避免判斷該節點是整體還是區域性。介面可以實現為空。使用範圍 在需求中體現部分與整...

15 組合模式

定義 將物件組合成樹形結構以表示 部門 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。適用 當發現需求中是體現部分與整體層次的結構時,以及你希望使用者可以忽略組合物件與單個物件的不同,同意地適用組合結構中的所有物件時,就應該考慮用組合模式了。asp.net的treevie...

10組合模式

組合模式 設計模式其實很簡單 筆記 定義 將物件組成樹形結構以表示 部分 整體 的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。理解 樹和子樹,即整體與部分。在樹形結構中,部分和整體有著類似或相同的結構,所以可以將部分和 整體一致對待 樹中分支節點與葉子節點的抽象父類 publi...