揭穿神話:代理影響效能
在最近的一篇部落格文章中,Marc Logemann 談到了代理效能的主題。在他的文章中,他要求“Spring 開發者”提供一份白皮書。我不想花費大量篇幅討論代理和位元組碼織入機制之間精確到納秒的差異,但我確實認為重申這些差異以及這種討論是否重要是有價值的。
什麼是代理以及我們為什麼使用它們?
讓我們首先簡要回顧一下代理的用途(通常以及在 Spring 中)。根據 GoF(Gang of Four)關於 設計模式 的書,代理是另一個物件的替身或佔位符,用於控制對其的訪問。因為代理位於物件的呼叫者和實際物件之間,所以它可以決定阻止實際(或目標)物件被呼叫,或者在目標物件被呼叫之前做一些事情。
換句話說,代理可以用作真實物件的替身,以對這些物件應用額外的行為——無論是與安全相關的行為、快取還是效能測量……
