接口在使用后,不需要也不允許用戶銷毀
接口用來通訊的。雖然在C++中,接口的一般用指針實(shí)現(xiàn),但它代表的是一種通訊方式,而不是資源的
位置。請求者在使用完后不應(yīng)去直接銷毀這個指針,而應(yīng)由接口的提供者去管理。
接口的提供者要管理接口關(guān)聯(lián)的實(shí)體的生命周期,而且還有知道接口的使用情況才能管理接口。
接口于實(shí)體之間有關(guān)聯(lián),這表明實(shí)體要在接口前創(chuàng)建,要在接口后銷毀。設(shè)計(jì)中接口提供者通過接口的
計(jì)數(shù),來管理接口的狀態(tài)。有一個請求者就將接口計(jì)數(shù)增加一,接口每被賦值一次接口計(jì)數(shù)也增加一次
。
接口的使用者在使用完后,要將接口返回給接口提供者,而不是自己直接銷毀。因?yàn)榻涌诓皇潜皇褂谜?br>申請的資源,而是用戶要求另一個對象通訊的通道。所以用完后要返還給接口提供者。接口提供者每接
到一個接口的返還,就減少這個接口的計(jì)數(shù)一次。
在要銷毀接口關(guān)聯(lián)的實(shí)體時,先要檢查這個接口是否還有使用者,如果有,就要通知使用者,要求它們
返還接口。在接口沒有使用者的情況下常能銷毀實(shí)體(這樣比較安全,當(dāng)然也可以強(qiáng)行銷毀)。
同一個接口可能對應(yīng)多個實(shí)體,不過用戶是感覺不到的。但是接口提供者一定要管理這種接口于不同的
實(shí)體之間的關(guān)聯(lián)關(guān)系,保證對不同的實(shí)體銷毀時,要收回與這個實(shí)體關(guān)聯(lián)的所有接口。