在代理模式中,一個(gè)類代表另一個(gè)類的功能。
代理模式是一種結(jié)構(gòu)模式。
在代理模式中,我們創(chuàng)建具有原始接口的對(duì)象,以將其功能暴露給外部世界。
interface Printer { void print(); } class ConsolePrinter implements Printer { private String fileName; public ConsolePrinter(String fileName){ this.fileName = fileName; } @Override public void print() { System.out.println("Displaying " + fileName); } } class ProxyPrinter implements Printer{ private ConsolePrinter consolePrinter; private String fileName; public ProxyPrinter(String fileName){ this.fileName = fileName; } @Override public void print() { if(consolePrinter == null){ consolePrinter = new ConsolePrinter(fileName); } consolePrinter.print(); } } public class Main { public static void main(String[] args) { Printer image = new ProxyPrinter("test"); image.print(); } }
上面的代碼生成以下結(jié)果。
更多建議: