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

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

九大常用设计模式

单例模式:https://blog.csdn.net/qq_37902949/article/details/87903569

简单工厂/静态工厂方法模式:https://blog.csdn.net/qq_37902949/article/details/87931684

工厂方法模式:https://blog.csdn.net/qq_37902949/article/details/87931610

代理模式:https://blog.csdn.net/qq_37902949/article/details/87931864

模板方法模式:https://blog.csdn.net/qq_37902949/article/details/87931912

观察者模式:https://blog.csdn.net/qq_37902949/article/details/87931995

适配器模式:https://blog.csdn.net/qq_37902949/article/details/87931940

装饰者模式:https://blog.csdn.net/qq_37902949/article/details/87931800

策略模式:https://blog.csdn.net/qq_37902949/article/details/87932047

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

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

/**
 * 接口
 */
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();
	}
}

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

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值