代理模式

2019-04-12  本文已影响0人  蜗牛ICU

前言:

因为现在设计模式在网络上已经泛滥,但是还是有好多程序员不能够灵活的运用设计模式,这个是对设计模式简单的介绍,因为网络上比较多类似的文章,所以本人就从网络上抄了一部分,等23种设计模式整理完成之后会根据实际的需求利用设计模式在代码中设计一些开源的插件,请继续关注。
原版[菜鸟教程]

简介:

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。

在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。

使用时机:
场景:
优点:
缺点:
案例:

第一步: 创建接口

public interface Image {
    void display();
}

第二步: 创建实现接口的类

public class ImageImpl  implements  Image{

     private String fileName;
     
       public ImageImpl(String fileName){
          this.fileName = fileName;
          loadFromDisk(fileName);
       }
     
       @Override
       public void display() {
          System.out.println("实现 Displaying " + fileName);
       }
     
       private void loadFromDisk(String fileName){
          System.out.println("实现 Loading " + fileName);
       }

}

第三步: 创建代理類

public class ProxyImage implements  Image{
    private ImageImpl imageImpl;
       private String fileName;
     
       public ProxyImage(String fileName){
          this.fileName = fileName;
       }
     
       @Override
       public void display() {
          if(imageImpl == null){
              imageImpl = new ImageImpl(fileName);
          }
          imageImpl.display();
       }
}

第四步: 調用

public class Main {

    public static void main(String[] args) {
        Image image = new ProxyImage("test_10mb.jpg");
         
          image.display(); 
          System.out.println("");
          image.display();  
    }
}

第五步: 输出结果

实现 Loading test_10mb.jpg
实现 Displaying test_10mb.jpg

实现 Displaying test_10mb.jpg

上一篇 下一篇

猜你喜欢

热点阅读