代理模式

原创 2016年06月01日 16:39:02

在设计模式中,一个类代表另一个类的功能,这样的设计模式称为结构型模式,在代理模式中,我们创建现有对象的对象,以便向外界提供功能接口。
主要解决直接访问对象时的问题,我们可以通过在访问此对象时添加一个访问层。一般想在访问一个类时做一些控制才会用到代理模式,而代理模式的关键就是代理类的组合。
UML类图:
这里写图片描述

java code:
public interface Image {
   void display();
}

 public class RealImage implements Image {

      private String fileName;

    public RealImage(String fileName)
    {
        this.fileName = fileName;
        loadFromDisk(fileName);
    }

    @Override
    public void display() {
        // TODO Auto-generated method stub
        System.out.println("Display::"+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  name)
     {
         this.fileName = name;
     }



    @Override
    public void display() {
        // TODO Auto-generated method stub

        if(realImage == null)
        {
            realImage = new RealImage(fileName);
        }
       realImage.display();
    }

}

public class ProxyPatternDemo {
public static void main(String[] args)
{

Image image = new ProxyImage("test_10bm.jpg");

image.display();

System.out.println(“”);

image.display();
}

}

运行结果:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)