Posted on 2008-06-04 15:39
RichardHe 閱讀(216)
評論(0) 編輯 收藏 引用 所屬分類:
[轉]
接口在使用后,不需要也不允許用戶銷毀
接口用來通訊的。雖然在C++中,接口的一般用指針實現,但它代表的是一種通訊方式,而不是資源的
位置。請求者在使用完后不應去直接銷毀這個指針,而應由接口的提供者去管理。
接口的提供者要管理接口關聯的實體的生命周期,而且還有知道接口的使用情況才能管理接口。
接口于實體之間有關聯,這表明實體要在接口前創建,要在接口后銷毀。設計中接口提供者通過接口的
計數,來管理接口的狀態。有一個請求者就將接口計數增加一,接口每被賦值一次接口計數也增加一次
。
接口的使用者在使用完后,要將接口返回給接口提供者,而不是自己直接銷毀。因為接口不是被使用者
申請的資源,而是用戶要求另一個對象通訊的通道。所以用完后要返還給接口提供者。接口提供者每接
到一個接口的返還,就減少這個接口的計數一次。
在要銷毀接口關聯的實體時,先要檢查這個接口是否還有使用者,如果有,就要通知使用者,要求它們
返還接口。在接口沒有使用者的情況下常能銷毀實體(這樣比較安全,當然也可以強行銷毀)。
同一個接口可能對應多個實體,不過用戶是感覺不到的。但是接口提供者一定要管理這種接口于不同的
實體之間的關聯關系,保證對不同的實體銷毀時,要收回與這個實體關聯的所有接口。