Java 代理模式

2018-01-17 18:31 更新

Java設(shè)計(jì)模式 - 代理模式


在代理模式中,一個(gè)類代表另一個(gè)類的功能。

代理模式是一種結(jié)構(gòu)模式。

在代理模式中,我們創(chuàng)建具有原始接口的對象,以將其功能暴露給外部世界。

例子

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é)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)