我正在瀏覽代理模式上的一篇文章。代理設計模式:缺點
Read the Comments After the Explanation
在這篇文章中有對代理模式提到的一些缺點,但我無法理解:
1)
缺點這裏是「魔力」可能會發生,一個增量是不知道的('黑盒子'問題)。 請解釋魔術。
2)
代理可以掩蓋來自其客戶端的易失性資源的生命週期和狀態。客戶端可能會調用代理服務器沒有意識到資源當前不可用......在這種情況下,代理服務器必須阻塞,直到資源再次可用,或者它必須產生某種錯誤。用Java術語來說,它必須是一個未經檢查的例外,因爲代理必須遵守原始對象的接口。此外,客戶端可能不知道它現在正在調用的資源與第二個之前調用的資源不同;如果資源上有任何狀態,則客戶可能會疑惑該狀態似乎已被遺忘。
請解釋。
3)
如果在本地進程中使用代理來表示遠程資源,這可能掩蓋了涉及遠程通信的事實。正如我們所知,遠程調用與本地調用完全不同,我們的程序不應該把它看作是相同的。如果代理以某種方式聲明它是遠程資源的代理而不是本地資源,那更好。然後,客戶端將只能選擇本地資源,或者在使用遠程資源時修改其行爲。
請您幫我理解以上三點與Proxy的缺點有關嗎?
我相信這個解釋也或多或少涵蓋了第一種情況。你可以說透明地進行遠程調用可以被認爲是「魔術發生」 –