代理模式(对象的创建和方法的执行放在代理类里,可以保护对象,降低耦合,方便的在方法前后进行增加其他功能)

package designMode;
//抽象主题
interface Subject{
  void Request();
}
//真实主题
class RealSubject implements Subject{
  public void Request(){
    System.out.println("访问真实主题方法...");
  }
}
//代理
class Proxy implements Subject{
  private RealSubject realSubject;
  public void Request(){
    if (realSubject==null){
      realSubject=new RealSubject();
    }
    preRequest();
    realSubject.Request();
    postRequest();
  }
  public void preRequest(){
    System.out.println("访问真实主题之前的预处理。");
  }
  public void postRequest(){
    System.out.println("访问真实主题之后的后续处理。");
  }
}
public class ProxyTest {
  public static void main(String[] args){
    Proxy proxy= new Proxy();
    proxy.Request();
  }
}

原文地址:https://www.cnblogs.com/Jmublog/p/12207101.html

时间: 2024-11-05 22:52:09

代理模式(对象的创建和方法的执行放在代理类里,可以保护对象,降低耦合,方便的在方法前后进行增加其他功能)的相关文章

Java基础5—{面向对象(构造方法、对象的创建步骤、static关键字、Math类)}

1.面向对象 1.1 构造方法概述和格式 1:构造方法概述和作用 创建对象,给对象中的成员进行初始化 2:构造方法格式特点 a:方法名与类名相同 b:没有返回值类型,连void都没有 c:没有具体的返回值 1 public class Student { 2 private String name; 3 private int age; 4 //我们自定义的类,默认存在一个空参构造构造方法 5 //构造方法的语法:方法名跟类名相同,没有返回值,连void 也没有 6 public Student

封装的只要是查询数据库并且返回字符串的方法把它放在DBDA类里面供以后直接调用使用

用这个封装好了的类文件可以做以下两个操作方便快捷

2017-9-20C#笔记(类,访问修饰符以及访问性,静态成员和实例成员,字段,Main方法,常量,对象的创建,类的属性)

软件开发的两种主要的方式为面向对象和面向过程,面向过程的焦点主要放在指令的组合和优化上,面向对象的焦点从指令转移到组织程序的数据和功能上. 类 程序的数据和功能被组织为逻辑上相关的数据项和函数的封装集合,称之为类.类作为一个有机的不可分割的整体,对外隐藏具体实现细节,从而实现可重用和易维护等特性,同时还提供了继承功能,支持子类获得父类特征. 类是一个能存储数据并执行代码的数据结构,是逻辑相关的数据和函数的封装,通常代表真实世界中的或概念上的事物. 类包括以下内容: (1) 数据成员:数据成员用来

设计模式(十四):代理模式

一.概述 代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问.其实就是代理就是做到类似转发的功能,针对不同代理,转发的具体实现不同. 二.解决问题 从原理知道他就是控制客户对一个对象的访问,它跟现实中的中介代理类似,只是作为代表做一些受理工作,真正执行的并不是它自己.比如买火车票,外面有很多火车票代理点,我们直接去代理点买票就好而不用跑到火车票买了(暂时不考虑网购哈). 三.结构类图 四.应用实例 在这个例子中,主要讲解远程代理,它可以作为另一个JVM上的本地代表.客户端调用代理的方

Android设计模式之代理模式 Proxy

一.概述 代理模式也是平时比较常用的设计模式之一,代理模式其实就是提供了一个新的对象,实现了对真实对象的操作,或成为真实对象的替身.在日常生活中也是很常见的.例如A要租房,为了省麻烦A会去找中介,中介会替代A去筛选房子,A坐享中介筛选的结果,并且交房租也是交给中介,这就是一个典型的日常生活中代理模式的应用.平时打开网页,最先开到的一般都是文字,而图片等一些大的资源都会延迟加载,这里也是使用了代理模式. 代理模式的组成: Abstract Subject:抽象主题-声明真实主题和代理主题共同的接口

代理模式小试

一.介绍 什么是代理模式. 惯例,我们先看一下<研磨设计模式>中的介绍--为其他对象提供一种代理以控制对这个对象的访问.代理模式的本质是--控制对象访问. 什么意思呢? 就是我们每次访问一个对象的时候,实际上去访问这个对象的代理.这个代理实际上就是这个对象的替身,可以实现原本对象绝大多数的功能.只有当需要某些特殊功能的时候,才去调用原本的对象.这样一来,在不修改原对象的情况下,就可以在代理对象上实现很多特殊的功能.这些功能基本都属于访问控制. 这里所说的代理跟我们平时所说的各种代理,其实就是一

设计模式学习笔记(十九:代理模式)

1.1概述 为其他对象提供一种代理以控制对这个对象的访问.这就是代理模式的定义. 当用户希望和某个对象打交道,但程序可能不希望用户直接访问该对象,而是提供一个特殊的对象,这个特殊的对象被称作当前用户要访问对象的代理,程序让用户和对象的代理打交道,即让用户通过访问代理来访问想要访问的对象.在代理模式中,代理的特点是:它与所代理的对象实现了相同的接口,也就是说代理和它多代理的对象向用户公开了相同的方法,当用户请求代理调用该方法时,代理可能需要验证某些信息或检查它所代理的对象是否可用,当代理确认它所代

设计模式(十一)代理模式Proxy(结构型)

1.概述 因为某个对象消耗太多资源,而且你的代码并不是每个逻辑路径都需要此对象, 你曾有过延迟创建对象的想法吗 ( if和else就是不同的两条逻辑路径) ? 你有想过限制访问某个对象,也就是说,提供一组方法给普通用户,特别方法给管理员用户?以上两种需求都非常类似,并且都需要解决一个更大的问题:你如何提 供一致的接口给某个对象让它可以改变其内部功能,或者是从来不存在的功能? 可以通过引入一个新的对象,来实现对真实对象的操作或者将新的对象作为真实对象的一个替身.即代理对象.它可以在客户端和目标对象

设计模式【代理模式】

首先我们先了解代理,代理是指一个人或者一个机构代表另一个人或者机构采取行动.代理模式给某一个对象提供一个代理对象,并由代理对象控制对象控制对原对象的引用. 代理模式一般涉及三个角色: Subject:抽象角色,声明真实对象和代理对象的共同接口:     Proxy:代理角色,代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象鱼与真 实对象相同的接口以便在任何时刻都能代替真实对象.同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装.简言之,代理