代理模式(Proxy pattern)
来源:互联网 发布:全国十大域名提供商 编辑:程序博客网 时间:2024/06/14 04:10
代理模式(Proxy pattern)属于结构型模式。
客户端执行一个类的方法是通过另一个类实现的,其中第一个类叫做被代理的类,第二个叫代理类。
具体实现:
1、定义一个接口或一个抽象类,作为代理类和被代理类的父类。
2、被代理类和代理类实现这个接口
3、代理类中包含一个被代理类的引用,并实现接口中的方法。
4、代理类可以增加自己的功能(但是这并不影响被代理的类)。
以租房子为例,客户通过中介租房东的房子,其中,房东是被代理的类,中介是代理类,客户就是客户端。
代码实现:
java版:
Rent.java(代理类和被代理要实现的接口)
public interface Rent {void rent();}
Host.java(房东)
public class Host implements Rent{public void rent(){System.out.println("租房子");}}
Proxy.java(中介(代理))
public class Proxy implements Rent{ //实现Rent接口private Host host; //被代理类的引用public Proxy(Host host){this.host = host;}public void setHost(Host host) {this.host = host;}public void rent(){seeHouse();host.rent();fare();}private void seeHouse(){ //代理类增加的功能System.out.println("看房子");}private void fare(){ //代理类增加的功能System.out.println("收取中介费");}}Client.java(客户端类)
public class Client {public static void main(String[] args) {Proxy proxy = new Proxy(new Host());proxy.rent();}}
代理模式的优点:
1、是被代理的类职责单一化,更清晰,体现了单一职原则。
2、是程序的扩展更容易。
3、更智能。
缺点:
1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。
2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂。
0 0
- 代理模式Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy pattern)
- 代理模式(Proxy Pattern)。
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 关于ES6的Promise的使用深入理解
- unit12
- MT7688路由器开发板添加Mac白名单
- 解决eclipse的自动换行问题 【安装wordWrap插件】
- Andrid数据库框架——greenDAO(三)
- 代理模式(Proxy pattern)
- linux命令中cd / 和 cd ~
- SimpleDateFormat格式字符对应表
- 访问服务器地址,默认添加项目后缀名
- hiho一下 第145周
- mysql 里面 group_concat函数设置最大字符长度
- 批量上传图片前展示
- BZOJ4816 [Sdoi2017]数字表格
- Android——使用android-support-multidex解决Dex超出方法数的限制问题