打字猴:1.700477094e+09
1700477094 设计模式之禅 [:1700454067]
1700477095 设计模式之禅 第31章 结构类模式大PK
1700477096
1700477097 结构类模式包括适配器模式、桥梁模式、组合模式、装饰模式、门面模式、享元模式和代理模式。为什么叫结构类模式呢?因为它们都是通过组合类或对象产生更大结构以适应更高层次的逻辑需求。我们来分析以下几个模式的相似点和不同点。
1700477098
1700477099 设计模式之禅 [:1700454068]
1700477100 31.1 代理模式VS装饰模式
1700477101
1700477102 对于两个模式,首先要说的是,装饰模式就是代理模式的一个特殊应用,两者的共同点是都具有相同的接口,不同点则是代理模式着重对代理过程的控制,而装饰模式则是对类的功能进行加强或减弱,它着重类的功能变化,我们举例来说明它们的区别。
1700477103
1700477104 31.1.1 代理模式
1700477105
1700477106 一个著名的短跑运动员有自己的代理人。如果你很仰慕他,你找运动员说“你跑个我看看”,运动员肯定不搭理你,不过你找到他的代理人就不一样了,你可能和代理人比较熟,可以称兄道弟,这个忙代理人还是可以帮的,于是代理人同意让你欣赏运动员的练习赛,这对你来说已经是莫大的荣耀了。我们来看类图,如图31-1所示。
1700477107
1700477108 这是一个套用代理模式的简单应用,非常简单!一个对象,然后再是自己的代理。我们先来看一下代码,先看抽象主题类,如代码清单31-1所示。
1700477109
1700477110
1700477111
1700477112
1700477113 图31-1 运动员跑步
1700477114
1700477115 代码清单31-1 抽象运动员
1700477116
1700477117 public interface IRunner{
1700477118
1700477119 //运动员的主要工作就是跑步
1700477120
1700477121 public void run();
1700477122
1700477123 }
1700477124
1700477125 一个具体的短跑运动员跑步是很潇洒的,如代码清单31-2所示。
1700477126
1700477127 代码清单31-2 运动员跑步
1700477128
1700477129 public class Runner implements IRunner{
1700477130
1700477131 public void run(){
1700477132
1700477133 System.out.println(“运动员跑步:动作很潇洒”);
1700477134
1700477135 }
1700477136
1700477137 }
1700477138
1700477139 看看现在的明星运动员,一般都有自己代理人,要么是专职的,要么就是自己的教练兼职,那我们来看看代理人的职责,如代码清单31-3所示。
1700477140
1700477141 代码清单31-3 代理人
1700477142
1700477143 public class RunnerAgent implements IRunner{
[ 上一页 ]  [ :1.700477094e+09 ]  [ 下一页 ]