九大常用设计模式学习-代理模式

版权声明:本文为博主原创文章,如果帮到你请点赞☺☺☺。 https://blog.csdn.net/qq_37902949/article/details/87931864

设计模式学习记录:一句话+代码体会设计模式。

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

一个找女朋友例子体会代理模式。

/**
 * 接口
 */
public interface IProtocol {
	void findGrilFriend();
	void add();
}
/**
 * 实现接口的类
 */
public class Me implements IProtocol {

	@Override
	public void findGrilFriend() {
		System.out.println("我准备找一个女朋友");
	}

	@Override
	public void add() {
		System.out.println("添加了一个女朋友");
	}
}

 媒人介绍,中间穿插一些额外操作

/**
 * 代理类
 */
public class Proxy implements IProtocol {
	
	private IProtocol me;
	private int money;
	
	public Proxy(IProtocol me,int money) {
		this.me = me;
		this.money = money;
	}
	
	@Override
	public void findGrilFriend() {
		//代理控制
		if (money == 500) {
			System.out.println("我给你介绍一个白富美。。。。");
			me.findGrilFriend();
		} else {
			System.out.println("请先缴纳服务费用");
		}
	}

	@Override
	public void add() {
		System.out.println("我需要验证是否符合我的要求");
		me.add();
		System.out.println("开始和女孩交往");
	}
}

 测试

/**
 * 代理模式:为其他对象提供一种代理以控制对这个对象的访问。
 * 不直接调用目标类对象的方法,而是通过创建代理类对象并调用其方法实现控制。
 */
public class TestProxy {
	public static void main(String[] args) {
		// 创建目标类对象
		IProtocol target = new Me();
		// 创建代理类对象
		Proxy proxy = new Proxy(target, 500);
		// 调用代理方法
		System.out.println("-----调用代理方法----");
		proxy.findGrilFriend();
		proxy.add();
	}
}

设计模式是软件开发人员在软件开发过程中面临一般问题的解决方案。

设计模式还是要慢慢体会。。

猜你喜欢

转载自blog.csdn.net/qq_37902949/article/details/87931864