Java设计模式(8)结构型:代理模式

来源:互联网 发布:php重庆招聘贴吧 编辑:程序博客网 时间:2024/06/06 01:52

(一)模式概述

代理模式指为其他对象提供一种代理方式以控制对某个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式可以屏蔽用户真正请求的目标对象,是用户程序和目标对象解耦。 


(二)模式结构

1)抽象角色:

通过接口或抽象类声明真实角色实现的业务方法。

2)真实角色:

实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。

3)代理角色:

实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。

(注)代理模式的目的是在不改变接口的前提下,控制对象的访问。


(三)Demo

抽象角色

public interface ISource {public void method();}
真实角色

public class Source implements ISource{@Overridepublic void method() {System.out.println("this is Source method!");}}
代理角色:

public class Proxy implements ISource {Source ps;// 此处真实对象ProxySource不能作为参数传入,目的是为了隐藏客户端对真实参数的应用public Proxy() {super();ps = new Source();}@Overridepublic void method() {System.out.println("代理前操作");ps.method();System.out.println("代理后操作");}}
执行过程:

public static void main(String[] args) {Proxy p = new Proxy();p.method();}
执行结果:
代理前操作this is Source method!代理后操作

0 0
原创粉丝点击