4.代理模式
实现追求美眉
0.UML图

1.代理和被代理共同实现的接口
/**
* Created by makex on 2017-06-13.
*/
public interface IGiveGift {
public void giveDolls();
public void giveFlowers();
public void giveCholcolate();
}
2.被代理类
/**
* @author makex
* @note 被代理类,实现接口
* @create 2017-06-13
*/
public class Pursuit implements IGiveGift{
private SchoolGirl mm;
public Pursuit(SchoolGirl mm) {
this.mm = mm;
}
@Override
public void giveDolls() {
System.out.println(mm.getName()+" 送你洋娃娃");
}
@Override
public void giveFlowers() {
System.out.println(mm.getName()+" 送你鲜花");
}
@Override
public void giveCholcolate() {
System.out.println(mm.getName()+" 送你巧克力");
}
}
3.代理类
/**
* @author makex
* @note 代理类
* @create 2017-06-13
*/
public class Proxy implements IGiveGift{
private Pursuit gg;
public Proxy(Pursuit gg) {
this.gg = gg;
}
@Override
public void giveDolls() {
gg.giveDolls();
}
@Override
public void giveFlowers() {
gg.giveFlowers();
}
@Override
public void giveCholcolate() {
gg.giveCholcolate();
}
}
4.辅助类
/**
* @author makex
* @note 中间类
* @create 2017-06-13
*/
public class SchoolGirl {
private String name;
public SchoolGirl(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
5.测试类
/**
* @author makex
* @note 测试类
* @create 2017-06-13
*/
public class TestClass {
public static void main(String[] args) {
SchoolGirl mm = new SchoolGirl("校花");
Pursuit gg = new Pursuit(mm);
Proxy proxy = new Proxy(gg);
proxy.giveDolls();
proxy.giveFlowers();
proxy.giveCholcolate();
/**
* 校花 送你洋娃娃
* 校花 送你鲜花
* 校花 送你巧克力
*/
}
}
备注:
/** * 1.代理对象和被代理对象实现相同的接口 * 2.被代理对象实现接口中的具体方法 * 3.代理对象包含被代理对象的一个引用,并调用被代理对象的方法 */
http://www.cnblogs.com/makexu/

浙公网安备 33010602011771号