《大话设计模式》—— 读后感 (7)为别人做嫁衣——代理模式
来源:互联网 发布:淘宝导航栏怎么做1920 编辑:程序博客网 时间:2024/05/12 18:18
代理模式
为其他对象提供一种代理以控制对这个对象的访问(摘抄)
对于代理模式,我感觉自己是有自己的理解的,而且实际编码中也用得比较多,所以读这一章的时候,感觉有些理解和作者也许还有点不一样,代理模式真的是实际编码过程中用得非常多的模式,简单的话来说就是把自己要做的事情交给别人来做,这就相当于别人代替你做了某事,这样的理解应该算代理吧
书上的代码是这样的
public interface S{void Operation();}public class A implements S{@Overridepublic void Operation() {//A的操作}}public class Proxy implements S{A a = new A();@Overridepublic void Operation(){a.Operation();}}public static void main(){ Proxy proxy = new Proxy(); proxy.Operation();}
我感觉这样写,好处看不到很多,有可能是我一开始对于代理模式的运用就用错了,但是有一点是我感觉可以理解的,就是这样子用代理模式对于功能的拓展有用,就是当你的A类已经写好了,而且不想改动的情况下,需要添加一些额外的功能,这样写也许会比较好
我自己平时用代理模式
public interface S{void Operation();}public class A implements S{@Overridepublic void Operation() {//A的操作}}public class A implements S{@Overridepublic void Operation() {//A的操作}}public class Proxy implements S{S s;public Proxy(S s){this.s = s;}@Overridepublic void Operation(){s.Operation();} public void special() { }}
这样子用呢感觉会灵活很多,对于功能的添加上会比直接用子类向上转型好很多,同时也可以根据传入的类,去调用相应的方法,例如取数据的方法有很多种,但是处理数据的方法只有一种,那么这样写的话,你用不同的方法取数据就只需要传入不同的类就可以了
书上最后总结,代理模式分为四种,远程代理,虚拟代理,安全代理,智能代理,但是又没有用代码来解释这些的区别和实际用途,感觉看着有点晕。。。
总结
其实看到这,真的感觉设计模式的很多东西都是相通的,例如这个代理模式达到的效果,也可以通过前面几种模式来达到,所以在实际编码的使用中真的不能生搬硬套,而是要学会理解每一种设计模式的原理,和他的思想,灵活的应用,因为实际编码以我们这种低水平的人,用不出那种十分正规的模式,也许写的模式四不像,但是只要能达到我们想要达到的目的,满足设计模式的原则,谁又能说这种设计模式是不是好的呢?
所以说没有最好的设计模式,只有最适合的设计模式!
0 0
- 《大话设计模式》—— 读后感 (7)为别人做嫁衣——代理模式
- 《大话设计模式》——读后感 (4)为别人做嫁衣?——静态代理模式(1)
- 《大话设计模式》——读后感 (4)为别人做嫁衣?——动态代理模式(2)
- 大话设计模式7:为别人做嫁衣——代理模式
- 为别人做嫁衣裳——代理模式
- 为别人做嫁衣——代理模式
- 第七章 为别人做嫁衣—代理模式
- 《大话设计模式》之--第7章 为别人做嫁衣----代理模式
- 《大话设计模式》之--第7章 为别人做嫁衣----代理模式
- 第7章 为别人做嫁衣----代理模式 大话设计模式
- 大话设计模式阅读笔记-为别人做嫁衣(代理模式)
- 大话设计模式-第07章 为别人做嫁衣--代理模式
- 【设计模式】为别人做嫁衣 --- 代理模式
- 代理模式-为别人做嫁衣
- 为别人做嫁衣---代理模式
- 代理模式-为别人做嫁衣
- 为别人做嫁衣 --- 代理模式
- 2. 代理模式-为别人做嫁衣
- 写给迷茫的自己
- UVA 1543 - Telescope(dp+几何)
- paip.取当天记录的方法sql跟hql hibernate
- ASP.NET页面之间传递值的几种方式
- OpenCV CvMat 保存读取文件
- 《大话设计模式》—— 读后感 (7)为别人做嫁衣——代理模式
- paip.刮刮卡砸金蛋抽奖概率算法跟核心流程.
- 从UIView的子类中推入视图控制器
- 2014.5.5 数据库设计之前应思考的点
- navigation为什么会为空
- CastingDemo
- wp8弹窗后按返回键取消弹窗
- maven 下载 源码和javadoc命令
- Java web项目框架配置文件