您的位置:首页 > 编程语言 > Java开发

代理模式

2016-06-01 16:39 483 查看
在设计模式中,一个类代表另一个类的功能,这样的设计模式称为结构型模式,在代理模式中,我们创建现有对象的对象,以便向外界提供功能接口。

主要解决直接访问对象时的问题,我们可以通过在访问此对象时添加一个访问层。一般想在访问一个类时做一些控制才会用到代理模式,而代理模式的关键就是代理类的组合。

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();

}

}

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式 java uml