保護代理程序的日常應用
作者:佚名 時間:2012-06-14 分享到:
每個對于這個賬戶的操作都是被一個叫做check_access方法的調用保護著.這個check_access方法正好它的名字所提示的那個,它確保當前的用戶是被允許個賬戶的用戶.這個check_access的示例版本使用etc模組來獲得當前用戶的名字,然后將當前用戶名和類的構造器中傳入的賬戶所有者的名字進行對比.
顯然,我們可以將這段檢測代碼放進bankaccount對象本身,而使用一個代理來做保護的好處是,可以使我們將非核心功能獨立出來,這個代理關心誰是誰或者當前用戶是否能這樣做,而一個真正的銀行賬號對象所要唯一關心的就是銀行賬號,通過在一個代理中實現安全控制,我們就可以很容易地切換不同的安全模式(只需要將主題換入不同的代理中)或者取消安全限制,不僅如此,我們還可以修改bandaccount對象的實現,而不需要擔心是否會打亂他們的安全計劃.
保護代理相對于"將所有安全和功能實現在一個類中"的方法還有一個優勢,通過將保護層清楚從真實的工作中分享出來,我們就可以將重要信息被不經意地泄露出去的可能性減少到最小.
如沒特殊注明,文章均為上海聯楷網絡原創,轉載請注明來自:http://www.ktcbnqb.cn/help/20151126/n962.html