你知道设计模式中的代理模式吗?

代理模式在 java 开发中是一种比较常见的设计模式。设计目的在为服务类与客户类之间插入其他功能,插入的功能对于调用者是透明的,起到伪装控制的作用,如租房的例子房客、中介、房东。对于代理模式中即:客户类、代理类、委托类(被代理类)。

代理模式的两个设计原则:

1.代理类与委托类具有相似的行为(共同)

2.代理类增强委托类的行为

Uml简图如下:

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-opeunAy2-1601000538808)(https://imgkr.cn-bj.ufileos.com/a5ad9f62-88f4-4f8a-8b75-fa7e16358f6c.png)]

代理模式实现的方式

  • 静态代理
  • 动态代理

案例实操

静态代理

为某个对象提供一个代理,代理角色固定,以控制对这个对象的访问。代理类和委托类有共同的父类和父接口,这样在任何使用委托类对象的地方都可以用代理对象代替。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。

/**
*
* 接口 抽象角色
* 定义行为
*/
public interface Marry {
   
	public void toMarry();
}
/**
* 目标类 真实角色
*/
public class You implements Marry{
   
    @Override
	public void toMarry() {
   
   		System.out.println("等了这么久,终于等到你。。。 ");
    }
}
/**
*
* 代理类 代理角色
* 1.与目标角色实现共同接口
* 2.持有目标类的引用
* 3.增强目标角色行为
*/
public class MarryCompany implements Marry{
   
	// 目标角色引用
	private Marry target;
	public MarryCompany(Marry target) {
   
		this.target = target;
	}
	public void before(){
   
		System.out.println("婚礼现场紧张布置中......");
	}
	@Override
	public void toMarry() {
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值