`

设计模式之代理模式三段论

 
阅读更多

抽象角色类:

 

package com.test.proxy;
 
public abstract class Subject {
/**
* 抽象角色,声明真实对象和代理对象的共同接口。
*/
public abstract void request();
 
}

 

 

 

代理角色类:

 

package com.test.proxy;
 
public class ProxySubject extends Subject {
/**
* 代理角色,代理对象角色内部含有对真实对象的引用。
*/
private RealSubject realSubject;
@Override
public void request() {
this.preRequest();
// TODO Auto-generated method stub
if(null == realSubject)
{
realSubject = new RealSubject();
}
realSubject.request();
this.postRequest();
}
private void preRequest()
{
System.out.println("pre request");
}
private void postRequest()
{
System.out.println("post Request");
}
}

 

 

真实角色类:

 

package com.test.proxy;
 
public class RealSubject extends Subject {
/**
* 真实角色,代理角色所代表的真实对象,是我们最终要引用的对象。
*/
 
@Override
public void request() {
// TODO Auto-generated method stub
System.out.println("from real subject");
 
}
 
}

 

 

测试类:

 

package com.test.proxy;
 
public class Client {
 
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Subject subject = new ProxySubject();
subject.request();
 
}
}

 

小结:由测试类,我们看出。客户实际需要调用的是RealSubject类的request()方法,现在却用ProxySubject来代理RealSubject类,同样达到目的,同时还封装了其他方法preRequest()和postRequest()方法可以处理一些其他问题。

分享到:
评论

相关推荐

    基于Java的设计模式理解与实现.pdf

    根据文档,设计模式主要分为三大类: 1. 创建型模式:这一类模式主要关注对象的创建。包括原型模式、建造者模式、工厂方法模式、单例模式和抽象工厂模式。这些模式的目的是在创建对象时,给予系统更大的灵活性和更...

    北京中科信软VS.NET设计模式与软件架构设计培训1

    此外,培训还包括了软件架构设计方法论、软件架构设计模式、软件架构设计流程、软件架构分析、基础架构设计以及全局架构设计的全面内容。通过实例分析,让学员能够将理论知识应用到实践中,解决实际工程问题,提高...

    深入浅出设计模式高清晰版迅雷下载地址

    GoF(Gang of Four)的《设计模式:可复用面向对象软件的基础》一书是设计模式领域内的经典之作,书中介绍了23种常用的设计模式,这些模式可以分为三大类:创建型模式、结构型模式和行为型模式。 1. **创建型模式**...

    UML设计模式

    设计模式的理念最早来源于建筑领域,由克里斯托弗·亚历山大在《论建筑的永恒之道》中提出,后来被软件工程领域采纳并发扬光大。 1995年,四位作者Richard Helm、Ralph Johnson、John Vlissides和Erich Gamma合著了...

    物流金融服务模式博弈的委托代理分析

    在此模式下,涉及的委托代理关系主要是指第三方物流作为商业银行的代理人,以及融资企业委托第三方物流进行金融服务。由于物流金融服务过程涉及的信息往往是不对称的,因此博弈理论成为分析这些关系的重要工具,可以...

    設計模式与思想lll

    标题“设计模式与思想”明确指向了软件工程中的一种方法论——设计模式,它是一种在特定情况下解决常见问题的模板或指南。而“思想”部分则暗示了书中不仅会传授具体的模式,还会引导读者掌握背后的思维逻辑,即如何...

    论文研究-管道、过滤器和MVC软件体系模式在J2EE中的应用.pdf

    管道和过滤器(Pipes and Filters)是软件设计模式的一种,它将数据处理流程分解为一系列独立的处理步骤,每个步骤被封装在一个过滤器组件中,这些步骤之间通过管道连接,允许数据以流的形式在过滤器间传递。...

    OOAD系列PPT

    第四章“结构型设计模式”涉及适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式和享元模式。这些模式关注如何组织类和对象,以实现更好的结构和接口复用。 第五章“行为型设计模式”主要介绍责任链...

    论基于委托代理理论的跨国公司治理机制解析.doc

    尽管有学者提出了不同战略下的子公司治理模式,但整体而言,对于跨国公司治理问题的深入理解和解决仍处于初级阶段,需要进一步研究代理链中各层次的互动、信息传递的有效性以及如何降低跨文化背景下的代理成本。...

    软件工程中的软件开发流程与方法论1.pptx

    - **结构型设计模式**:如适配器模式、装饰者模式、代理模式等。 - **行为型设计模式**:如观察者模式、策略模式、模板方法模式等。 - **创建型设计模式**:如工厂模式、单例模式、原型模式等。 **设计原则**: - *...

    UML和模式应用(架构师必备).part02.rar

    38.10 映射对象:数据库映射器或数据库代理模式 38.11 使用模板方法模式进行框架设计 38.12 使用模板方法模式的具体化 38.13 使用MapperFactory配置Mapper 38.14 模式:缓存管理 38.15 在类中合并和隐藏SQL语句...

    软件工程中的软件开发流程与方法论2.pptx

    - **结构型设计模式**:适配器模式、装饰者模式、代理模式等,主要用于处理类和对象的组合。 - **行为型设计模式**:观察者模式、策略模式、模板方法模式等,关注类的行为和交互。 - **创建型设计模式**:工厂模式、...

    UML和模式应用(架构师必备).part01.rar

    38.10 映射对象:数据库映射器或数据库代理模式 38.11 使用模板方法模式进行框架设计 38.12 使用模板方法模式的具体化 38.13 使用MapperFactory配置Mapper 38.14 模式:缓存管理 38.15 在类中合并和隐藏SQL语句...

    UML和模式应用(架构师必备).part07.rar

    38.10 映射对象:数据库映射器或数据库代理模式 38.11 使用模板方法模式进行框架设计 38.12 使用模板方法模式的具体化 38.13 使用MapperFactory配置Mapper 38.14 模式:缓存管理 38.15 在类中合并和隐藏SQL语句...

Global site tag (gtag.js) - Google Analytics