Java设计模式--------代理模式

在看大话设计模式的时候,书上解说这个模式的时候是以一个给别人做嫁衣的故事。

貌似代理模式就是给别人做嫁衣大笑,就是代理类为被代理类做嫁衣咯。

上图:



行为接口:

package com.tian.testproxy;

/**
 * @Author Tianluhua
 * @Date 2016年12月27日 上午11:11:51
 */
public interface GiveGift {

	// 送娃娃
	public void giveDolls();

	// 松鲜花
	public void giveFlowers();

	// 送巧克力
	public void giveChocolate();

}


实际追求MM的类:

他需要实现GiveGift接口,因为他要追妹子当然需要送礼物。

package com.tian.testproxy;

/**
 * @Author Tianluhua
 * @Date 2016年12月27日 上午11:14:44
 * 
 *       追求MM的类
 */
public class Pursuit implements GiveGift {

	private Girl mm;

	public Pursuit(Girl mm) {
		super();
		this.mm = mm;
	}

	public void giveDolls() {
		// TODO Auto-generated method stub
		System.out.println("送娃娃给:" + mm.getName());

	}

	public void giveFlowers() {
		// TODO Auto-generated method stub
		System.out.println("送鲜花给:" + mm.getName());

	}

	public void giveChocolate() {
		// TODO Auto-generated method stub
		System.out.println("送巧克力给:" + mm.getName());

	}

}

代理类:


package com.tian.testproxy;

/**
 * @Author Tianluhua
 * @Date 2016年12月27日 上午11:15:28
 * 
 *       代理类
 */
public class Proxy implements GiveGift {

	private Pursuit pursuit;

	public Proxy(Girl mm) {
		super();
		this.pursuit = new Pursuit(mm);
	}

	public void giveDolls() {
		// TODO Auto-generated method stub
		pursuit.giveDolls();

	}

	public void giveFlowers() {
		// TODO Auto-generated method stub
		pursuit.giveFlowers();

	}

	public void giveChocolate() {
		// TODO Auto-generated method stub
		pursuit.giveChocolate();

	}

}

客户端调用:

package com.tian.testproxy;

import java.lang.reflect.InvocationHandler;

import com.tian.testproxy.proxy.BookFacade;
import com.tian.testproxy.proxy.BookFacadeImpl;
import com.tian.testproxy.proxy.BookFacadeProxy;

/**
 * 
 * 代理模式(Proxy),为其他对象提供一种代理以控制对象的访问
 * 
 */
public class Main {
	public static void main(String[] args) {

		// 静态代理
		Girl jiaojiao = new Girl();
		jiaojiao.setName("李娇娇");
		Proxy proxy = new Proxy(jiaojiao);
		proxy.giveDolls();
		proxy.giveFlowers();
		proxy.giveChocolate();

		
	}

}

结果打印:



源码连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值