博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式学习之代理模式(Proxy)
阅读量:6342 次
发布时间:2019-06-22

本文共 1255 字,大约阅读时间需要 4 分钟。

一、代理模式的初衷

不想让客户端直接访问具体实现接口,客户端不应该直接访问具体实现,一般会涉及到以下四个对象

  • 业务接口:定义客户端访问的接口,是实现类和代理类都需要实现的
  • 实现类:实现了业务接口,真正的实现是在这里
  • 代理类:同样实现了业务接口,一般都会关联一个实现类的实例,由它来调用实现类
  • 客户端:顾名思义,使用者,与代理类打交道,甚至都不知道具体实现类的存在。

二、代理模式设计图

三、代理模式的简单实现代码

BizInterface.java

package com.lipan.designpattern;
/*
* @author:lipan
*
* */
public interface BizInterface {
 
public void doSomeBizWork();
 
}

BizProxy.java

package com.lipan.designpattern;
 
public class BizProxy implements BizInterface{
 
private BizRealService obj;
@Override
public void doSomeBizWork() {
 
if(obj == null){
obj = new BizRealService();
}
 
System.out.println("do some non-biz work before real biz work");
obj.doSomeBizWork();
System.out.println("do some non-biz work after real biz work");
 
}
 
}

BizRealService.java

package com.lipan.designpattern;
 
public class BizRealService implements BizInterface{
 
@Override
public void doSomeBizWork() {
// TODO Auto-generated method stub
System.out.println("Do some real work in Class BizRealService!");
}
}

TestProxy.java

package com.lipan.test;
 
import com.lipan.designpattern.*;
 
public class TestProxy {
 
public static void main(String[] args) {
// TODO Auto-generated method stub
BizProxy bp = new BizProxy();
bp.doSomeBizWork();
}
}

转载于:https://www.cnblogs.com/obama/p/3831569.html

你可能感兴趣的文章
docker CE&&EE版本centos安装
查看>>
浅谈URL生成方式的演变
查看>>
Linux下ssl+http 实现 HTTPS 访问服务器设置
查看>>
磁盘与文件系统管理之五
查看>>
python学习-递归
查看>>
day:35:netfilter防火墙的管理工具firewalld及iptables备份恢复
查看>>
第六讲:用户界面 View(二)
查看>>
lsof用户及恢复日志文件
查看>>
Python之获取系统信息--(二)
查看>>
IE9,IE10不能显示@font-face定义的字体
查看>>
JSP----ISPI
查看>>
oracle 归档日志满了如何处理
查看>>
虚函数
查看>>
jsp当中引入静态文件
查看>>
登陆框post注入教程
查看>>
maven打包
查看>>
我的友情链接
查看>>
如何对kubernetes scheduler进行二次开发
查看>>
单引号,双引号,不加引号的区别和使用规则
查看>>
【东东学数据结构】快速排序
查看>>