Posted on 2005-11-15 12:34
canonical 閱讀(240)
評論(0) 編輯 收藏 所屬分類:
Witrix開發(fā)平臺
關(guān)于jsplet中的object生命周期的管理以及使用拉模式,如果套用現(xiàn)在流行的設(shè)計術(shù)語,那就是涉及到所謂的IoC設(shè)計(控制反轉(zhuǎn))
IoC
的Container現(xiàn)在很受追捧,
但真正的IoC設(shè)計思想并沒有引起大家的重視。也許大多數(shù)人使用的都是成品吧,以至于把成品的功能等價于其所依賴的設(shè)計原理。Spring等所建立的
IoC更準確的說法是Dependency
Injection,只是IoC的一種體現(xiàn)。其基本思想是一個對象并不控制所有與它相關(guān)的部分,而是把控制權(quán)交給使用對象的人。這里重要的就是控制流(信
息流)的反轉(zhuǎn)。
對象生命周期的管理也是這樣,并不是由一個Manager猜測用戶是否使用該對象,而是由用戶直接標明他的態(tài)度,直接發(fā)出指令。
參
考一下桌面應(yīng)用中的資源控制手段,我們打開一個窗口,與系統(tǒng)進行交互,此時占用資源,關(guān)閉窗口,則該窗口以及其子窗口所占用的資源都釋放。在jsplet
中對象控制策略類似。當用戶從某個功能區(qū)退出的時候,即當用戶訪問其它scope中對象而放棄當前objectScope的時候,開始做資源清理工作。即
用戶的行為和意向直接驅(qū)動著系統(tǒng)的對象管理層。當然,如果用戶一直不發(fā)出調(diào)用,那么系統(tǒng)只能猜測用戶的行為,用戶是否已斷線或者正在思考?在這種情況下,
如果控制資源,則需要通過AOP給thisObj 加上類似EJB的功能。