设计模式 之代理(Proxy)模式

为什么这里要定义代理呢?所谓代理代理,当然就是你不想做的事,找别人去做,这就是代理。所以,当你写代码的时候,你想保持类的简单性、重用性,你就可以把事件尽量都交给其它类去做,自己只管做好自己的事。也就是SRP,单一职责原则。如果一个类关注的点过多,做的事情太多。这些事情不管是你直接做的,还是调用别的对象去完成的。这都不行,自己做这些事,那就会使类的功能复杂化,维护不方便。而过多地调用其它对象来完成一些事情,表面上看起来好像不错,实际上是过度耦合了。我们编写类的原则应该是追求高内聚,低耦合的。可能你会说,用代理不也是交给别人做吗?没错,问的好。但是,代理是接口,我们是针对接口编程,所以它的重用性会非常好。因此,下次当你想写可扩展和可重用的代码的时候,不妨先想想代理这个东西吧。

Cocos2d-x /ui 控件的管理所谓就是代理模式。

在widget类里面有这两个函数 :

/**设置布局参数*/

void setLayoutParameter(LayoutParameter* parameter);

/**得到布局参数*/

LayoutParameter* getLayoutParameter(LayoutParameterType type);

本来 布局参数可以作为widget的一个属性,成员 。但是这样处理起来 这个widget就会增加负担,功能复杂 不利于维护。现在剥离出来,利用代理模式,现在参数布局LayoutParameter单独封装处理
重用性也很高。

设计模式 之代理(Proxy)模式

时间: 2024-10-27 15:33:09

设计模式 之代理(Proxy)模式的相关文章

Android中的代理(Proxy)模式

一. Proxy模式定义 Proxy模式,也称代理模式,是经典设计模式中的一种结构型模式,其定义是为其他对象提供一种代理以控制对这个对象的访问,简单的说就是在访问和被访问对象中间加上的一个间接层,以隔离访问者和被访问者的实现细节. 二. Proxy模式理解 当无法或者不想直接访问某个对象, 或者访问某个对象存在困难时, 可以通过一个代理对象来间接访问, 为了保证客户端使用的透明性, 委托对象与代理对象需要实现相同的接口. 例如,ActivityManager 作为客户端要访问 AMS,AMS 不

设计模式--代理(Proxy)模式

在公司,经常性听到采购部的人说采购某样东材料,采购不了,需要通过代理商才可以.以前Insus.NET也做有一个练习<找人办事,代理设计模式(Proxy)>http://www.cnblogs.com/insus/archive/2013/02/27/2935081.html .理解起来跟公司的采购员找代理商采购是一样的道理. 统一的行为,就是采购,不管是公司的采购员还是代理商: 公司的采购员: 代理商: OK,实现环境: 演示: 代理模式实际环境中很多.比如我们想租或买房,均可以让代码帮助我们

Android与设计模式——代理(Proxy)模式

在阎宏博士的<JAVA与模式>一书中开头是这样描述代理(Proxy)模式的: 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 代理模式的结构. 所谓代理,就是一个人或者机构代表另一个人或者机构采取行动.在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式类图如下: 在代理模式中的角色: ●抽象对象角色(Phone):声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象

行为模式--代理Proxy模式(Java)

代理(AOP切面的雏形): 题记:顾名思义就是将某件事,某个东西的使用权进行为让授权转移.代理相当于中介(不同于中介者模式),在原本操作的类之间添加了一个桥梁.但代理不能去修改原有目标.比如:一个人要买       房,让中介帮忙给看个房,但中介不能将原有看房这件事变更为看车.他可以对看房提出各种要求和咨询. 回到程序的角度,调用者将调用某些共性类的处理交由代理类处理,代理类根据调用者的要求即满足什么情况可以调用,什么情况不能调用,(卖房者委托中介100万以上卖,100万以下不卖)对处理做前后的

代理(Proxy)模式

代理模式的类图如下所示: 客户端想调用的是RealSubject,由于某种考虑或原因,只能直接访问到ProxySubject,再由ProxySubject去调用RealSubject,这就完成了一次代理的活动. 代理模式的时序图如下: 从上面可以看出,ProxySubject不仅可以完成对RealSubject的调用,在调用前后还可以完成一些事情,这就是代理模式的优点. 代理模式按照使用的分类,可以分为以下几类: 远程代理:为一个不同地址空间的对象提供一个局域代表对象. 虚拟代理:根据需求创建一

Java 实现代理(Proxy)模式

/** * 游戏者接口 * @author stone * */ public interface IGamePlayer { // 登录游戏 public void login(String user, String password); // 杀怪,网络游戏的主要特色 public void killBoss(); // 升级 public void upgrade(); } /** * 游戏者 * @author stone * */ public class GamePlayer imp

单点登录cas常见问题(八) - 什么时候会用到代理proxy模式?

举一个样例:有两个应用App1和App2,它们都是受Casserver保护的,即请求它们时都须要通过Cas server的认证. 如今须要在App1中通过Http请求訪问App2,显然该请求将会被App2配置的Cas的AuthenticationFilter拦截并转向Cas server,Casserver将引导用户进行登录认证,这样我们也就訪问不到App2的资源了. 针对这样的应用场景.Cas也提供了Cas Proxy 轻松的攻克了这个问题.

Android设计模式之代理模式 Proxy

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

设计模式之代理模式(Proxy)摘录

23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象.创建型模式有两个不断出现的主旋律.第一,它们都将关于该系统使用哪些具体的类的信息封装起来.第二,它们隐藏了这些类的实例是如何被创建和放在一起的.整个系统关于这些对象所知道的是由抽象类所定义的接口.因此,创建型模式在什么被创建,谁创建它,它是怎样被创建的,以