代理模式和裝飾器模式的區別
阿新 • • 發佈:2018-12-26
代理模式和裝飾器模式, 包裝和實現都繼承自同一介面,形式比較像,但是其實它們的用途是各不相同的。
代理模式,隱藏了真實的處理者,裝飾模式需要客戶制定具體的處理者。
使用代理模式,代理和真實物件之間的的關係通常在編譯時就已經確定了,而裝飾者能夠在執行時遞迴地被構造。
//代理的客戶 public class Client{ public static void main(String[] args){ //客戶不知道代理委託了另一個物件 Subject subject = new Proxy(); … } }
//裝飾器的客戶public class Client{ public static void main(String[] args){ //客戶指定了裝飾者需要裝飾的是哪一個類 Component component = new Decorator(new ConcreteComponent()); … } }