设计模式之代理模式
设计模式,六大设计原则,类的特性
总纲
http://blog.csdn.net/fenglailea/article/details/52733435
风.fox
代理模式 Proxy Pattern
为其他对象提供一种代理以控制对这个对象的访问
代理模式也叫委托模式
通用类图
组成
- 抽象主题 Subject
抽象主题类可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要求 - 具体主题 RealSubject
也叫做被委托角色、被代理角色。它才是冤大头,是业务逻辑的具体执行者 - 代理主题 Proxy
也叫做委托类、代理类。它负责对真实角色的应用,把所有抽象主题类定义的方法限制委托给真实主题角色实现,并且在真实主题角色处理完毕前后做预处理和善后处理工作
案例
JAVA
//抽象主题类
public interface Subject{
// 定义一个方法
public void request();
}
//真实主题类
public class RealSubject implements Subject{
// 实现方法
public void request(){
。。。。
}
}
//代理类
public class Proxy implements Subject{
// 要代理哪个实现类
private Subject subject =null;
// 模式被代理者
public Proxy(){
this.subject= new Proxy(){
}
// 通过构造函数传递代理者
public Proxy(Object ...objects){
}
// 实现接口中定义的方法
public void request(){
this.before();
this.subject.request();
this.after();
}
// 预处理
private void before(){
...
}
// 善后处理
private void after(){
...
}
}
一个代理类可以代理多个被委托者或者代理者,因此一个代理类具体代理哪个真实主题角色,是由场景决定的。当然,最简单的情况就是一个主题类和一个代理类,这是最简洁的代理模式。在通常情况下,一个接口只需要一个代理类就可以了,具体代理哪个实现类由高层模块决定,就是在代理类的构造函数中传递被代理者。
优点
职责清晰
高扩展性
智能化
智能推荐
设计模式之代理模式
代理模式:为某个对象提供一个代理对象,并且由代理对象控制对原对象的访问。代理对象就像是生活中的中介。当我们去买房时,我们不会直接去找房源,而是通过房产中介,通过沟通,选择我们想要的房子。 结构 主要角色 抽象角色。通过接口或抽象类声明真实角色实现的业务方法。 代理角色。实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。 真实角色。实现抽象角色,定义真实...
设计模式之代理模式
本文参考: https://blog.csdn.net/jason0539/article/details/22974405 https://www.cnblogs.com/pony1223/p/5588964.html https://www.cnblogs.com/jenkinschan/p/6291328.html 一、概述 代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问...
设计模式之代理模式
设计模式之代理模式 代理模式基本概念及其分类 代理模式开发中应用场景 代理模式实现方式 JDK动态代理实现 什么是代理模式 为其他对象提供一种代理以控制这个对象的访问。起到中介的作用,去掉一些功能服务,或者增加额外的功能服务 常见的代理模式 远程代理 虚拟代理 保护代理 智能引用代理 1.远程代理 2. 虚拟代理 3. 保护代理 4. 智能引用代理 代理模式的实现 Java动态代理类位于java....
设计模式之【代理模式】
SpringAOP的底层就是代理模式 代理模式的分类:静态代理、动态代理 一、静态代理 角色分析: 抽象结束:一般会使用接口或者抽象类来解决 真是角色:被代理的角色 代理角色:代理真实角色,代理真实角色后,一般会做一些附属操作 客户:访问代理对象的人 代码步骤 1.接口 2.真实角色 3.代理角色 4.客户端访问代理角色 代理模式的好处: ①可以使真实角色的操作更加纯粹,不用去关注一...
设计模式之——代理模式
一、基本介绍 代理模式:给某些对象提供一个代理对象,以控制对这些对象的访问,或对这些对象进行与业务无关的增强操作。 二、包含角色 1.抽象主题类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。 2.真实主题类:实现了抽象主题中的具体业务,是代理对象所代表的真实对象,即被代理对象。 3.代理类:提供了与真实主题相同的接口,其内部含有对真实主题的引用,它可以访问、控制或扩展真实主题的功能。 三...
猜你喜欢
设计模式之代理模式
前言 这个模式也是蛮好懂的~尤其是看到《武林外传》中小六表白把秀才的醋坛子打翻这截,太形象了~ 代理模式 what 为其他对象提供一种代理以控制对这个对象的访问。其实就是在访问对象时引入一定程度的间接性。 说白了,代理就是真实对象的代表。 type 代理一般分为以下几种: 远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。客户端程序调用代理就可以...
设计模式之代理模式
代理模式:为其他对象提供一种代理以控制对这个对象的访问,在某种情况下,一个对象不适合或者不能够直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用。 可以这么理解:使用代理对象,是为了在不修改目标对象的基础上,增强主业务的逻辑。就相当于某个普通人(目标对象),他现在需要打官司,那么他可以自己学习法律,为自己辩护(相当于把业务代码逻辑自己来实现),这就是修改了目标对象,那么当然有一...
设计模式之代理模式
学习设计模式的日常Demo 代理模式的基本介绍 结构型模式 范围\目的:对象模式 静态代理 静态代理模式基本介绍 静态代理模式案例 代码实现: 静态代理优缺点 动态代理 动态代理模式基本介绍 JDK中生成代理对象的API 代码实现: Cglib代理 Cglib代理模式基本介绍 Cglib代理模式实现步骤 Cglib代理模式案例 代码实现: 代理模式的几种变体 GitHub:设计模式源代码...
设计模式之代理模式
代理模式作用:一保护目标对象,二增强目标对象。 设计原则概览 设计原则 简称 解释说明 备注 开闭原则 (OCP)Open-Closed Principle, 对扩展开放,对修改关闭。 依赖倒置原则 (DIP)Dependence Inversion Principle 高层模块不应该依赖底层模块,二者都应该依赖其抽象。也就是说针对接口编程,不要针对实现编程,针对接口编...
人工智能基础-数学方法-形式逻辑
1956 年召开的达特茅斯会议宣告了人工智能的诞生。在人工智能的襁褓期,各位奠基者们,包括约翰·麦卡锡、赫伯特·西蒙、马文·明斯基等未来的图灵奖得主,他们的愿景是让“具备抽象思考能力的程序解释合成的物质如何能够拥有人类的心智”。 通俗地说,理想的人工智能应该具备抽象意义上的学习、推理与归纳能力,其通用性将远远强于解决国际象棋或是围棋...
