zoukankan      html  css  js  c++  java
  • 代理模式

    代理模式介绍:http://www.runoob.com/design-pattern/proxy-pattern.html

    个人理解:代理模式相当于用B类代替A类行使一些A类的功能,B类具有但不完全具有A类的功能。B类有点类似于A类的子类。

    代理模式的意图是为其他对象提供一种代理以控制对这个对象的访问。

     1、创建一个接口

    public interface Image {
           void display();
    }

     2、创建实现接口的实体类。

    public class RealImage implements Image {
       private String fileName;
     
       public RealImage(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 RealImage realImage;
       private String fileName;
     
       public ProxyImage(String fileName){
          this.fileName = fileName;
       }
     
       @Override
       public void display() {
          if(realImage == null){
             realImage = new RealImage(fileName);
          }
          realImage.display();
       }
    }

     3、当被请求时,使用 ProxyImage 来获取 RealImage 类的对象。

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

    代理模式和工厂模式明显的区别在于:

    代理模式创建出来的对象只拥有原对象的部分功能,而工厂模式创建出来的对象具有原对象的全部功能。

  • 相关阅读:
    win7,win10获取屏幕缩放适应截图
    cg语言学习&&阳春白雪GPU编程入门学习
    Unity Plugins的使用方法
    记录Unity的优化tip(不断更新)
    深入理解法线贴图原理
    读香菱学诗
    排序算法学习
    图的算法复习大纲
    Gama Space 和 Linear Space 学习
    BM算法学习
  • 原文地址:https://www.cnblogs.com/jwen1994/p/9983123.html
Copyright © 2011-2022 走看看