AOP入门之静态代理
来源:互联网 发布:淘宝客自动采集 编辑:程序博客网 时间:2024/05/16 17:20
代理模式
代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。
在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
代理模式一般涉及到的角色
- 抽象角色:声明真实对象和代理对象的共同接口。
- 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能够代替真实对 象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。
- 真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。
举个栗子
/// <summary> /// 真实对象和代理对象的共同接口 /// </summary> public interface ISubject { void request(); } /// <summary> /// 真实对象 /// </summary> public class RealSubject : ISubject { public void request() { Console.WriteLine("真实对象方法"); } } /// <summary> /// 代理对象 /// </summary> public class ProxySubject : ISubject { /// <summary> /// 代理角色对象内部包含有对真实对象的引用 /// </summary> private RealSubject realSubject; public void request() { //在真实角色操作之前所附加的操作 preRequest(); if (null == realSubject) { realSubject = new RealSubject(); } //真实角色所完成的事情 realSubject.request(); //在真实角色操作之后所附加的操作 postRequest(); } /// <summary> /// 执行前方法 /// </summary> private void preRequest() { Console.WriteLine("Pre Request."); } /// <summary> /// 执行后方法 /// </summary> private void postRequest() { Console.WriteLine("Post Request"); } }
返回结果
写在最后
静态代理类图
为其他对象提供代理以控制对这个对象的访问
(例如火车票代售处代理火车站售票,提供电话预约订票等渠道,但是退票只能在火车站退)
"去掉功能服务,增加额外服务"
两种机制: 静态代理 动态代理
阅读全文
0 0
- AOP入门之静态代理
- spring-aop入门之静态代理模式
- AOP之静态代理VS动态代理
- aop入门前内容:静态代理
- springframework(六)AOP之静态代理
- Spring AOP 学习之静态代理
- springframework(六)AOP之静态代理
- spring-aop入门之动态代理模式
- Spring学习心得(12)-- aop入门前内容:静态代理
- java学习之路----静态代理---动态代理-----AOP的前奏(AOP也是动态代理)
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- Java代理之(jdk静态代理/jdk动态代理/cglib动态代理/aop/aspectj)
- 代理模式、静态代理、动态代理、aop
- 欢迎使用CSDN-markdown编辑器
- 自我简介
- eclipse中配置svn
- POJ 1163
- R语言入门4——数据的结构
- AOP入门之静态代理
- 通达oa破解版/通达oa2017破解补丁/最新通达oa2017破解版下载
- Linux学习(四)
- 我是这样搞懂一个神奇的BUG
- 服务条款
- SQL优化
- php页面嵌套html代码,,html中js调用php中的数组
- 文工厂模式之简单工厂
- Android studio 如何让包安层级显示