Coder_PWH

编程是一门艺术,要爱请深爱。

代理模式

在设计模式中,一个类代表另一个类的功能,这样的设计模式称为结构型模式,在代理模式中,我们创建现有对象的对象,以便向外界提供功能接口。
主要解决直接访问对象时的问题,我们可以通过在访问此对象时添加一个访问层。一般想在访问一个类时做一些控制才会用到代理模式,而代理模式的关键就是代理类的组合。
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();
}

}

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

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_27406925/article/details/51557129
文章标签: 设计模式 java uml
个人分类: 设计模式 JAVA
上一篇工厂模式
下一篇观察者模式
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭