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

Java 23种设计模式之代理模式

2018-01-01 18:54 387 查看

1. 概念

为其他对象提供一种代理以控制对这个对象的访问


2. 创建送礼物接口

public interface IGiveGift{

//送娃娃
void giveDolls();

//送花
void giveFlowers();

//送巧克力
void giveChocolate();

}


3. 创建追求者和被追求者类

1. 创建追求者类
public class Pursuer implements IGiveGift{

SchoolGril gril;

public Pursuer(SchoolGril gril){
this.gril = gril;
}

@Override
public void giveDolls() {
System.out.println(gril.getName()+" 送你娃娃");
}

@Override
public void giveFlowers() {
System.out.println(gril.getName()+" 送你鲜花");
}

@Override
public void giveChocolate() {
System.out.println(gril.getName()+" 送你巧克力");
}
}

2.创建被追求者类
public class SchoolGril {

private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}


4. 创建代理类

public class Proxy implements IGiveGift{

private Pursuer pursuer;
public Proxy(SchoolGril gril){
pursuer = new Pursuer(gril);
}

@Override
public void giveDolls() {
pursuer.giveDolls();
}

@Override
public void giveFlowers() {
pursuer.giveFlowers();
}

@Override
public void giveChocolate() {
pursuer.giveChocolate();
}
}


5. 测试类

@org.junit.Test
public void test(){
SchoolGril gril = new SchoolGril();
gril.setName("qiaoqiao");

Proxy proxy = new Proxy(gril);
proxy.giveDolls();
proxy.giveFlowers();
proxy.giveChocolate();

}


6.小结

代理模式其实就是在访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途。

分:
远程代理
虚拟代理
安全代理
智能索引
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: