UML类图:

【JAVA设计模式】代理模式

接口类:

package com.jthao.design.des.proxy;

public interface IGiveGift {
	
	void giveDolls();
	void giveFlowers();
	void giveChocolate();
}

真实操作类:

package com.jthao.design.des.proxy;

public class Pursuit implements IGiveGift {

	private SchoolGirl mm;

	public Pursuit(SchoolGirl mm) {
		this.mm = mm;
	}

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

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

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

}

代理类:

package com.jthao.design.des.proxy;

public class Proxy implements IGiveGift {
	
	Pursuit pursuit;
	
	public Proxy(SchoolGirl mm) {
		pursuit = new Pursuit(mm);
	}

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

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

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

}

引用类(与本模式无关):

package com.jthao.design.des.proxy;

public class SchoolGirl {

	private String name;

	public String getName() {
		return name;
	}

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

}

测试类:

package com.jthao.design.des.proxy;

public class ProxyTest {

	public static void main(String[] args) {
		SchoolGirl mm = new SchoolGirl();
		mm.setName("漂亮MM");
		Proxy proxy = new Proxy(mm);
		proxy.giveDolls();
		proxy.giveFlowers();
		proxy.giveChocolate();
	}

}

相关文章: