打字猴:1.700477509e+09
1700477509 ===很久很久以前,这里有一只丑陋的小鸭子===
1700477510
1700477511 外形是脏兮兮的白色,毛茸茸的大脑袋
1700477512
1700477513 叫声是克噜——克噜——克噜
1700477514
1700477515 不能飞行
1700477516
1700477517 ===小鸭子终于发现自己是一只天鹅====
1700477518
1700477519 外表是纯白色的,非常惹人喜爱!
1700477520
1700477521 叫声是克噜——克噜——克噜
1700477522
1700477523 会飞行了!
1700477524
1700477525 使用装饰模式描述丑小鸭蜕变的过程是如此简单,它关注了对象功能的强化,是对原始对象的行为和属性的修正和加强,把原本被人歧视、冷落的丑小鸭通过两次强化处理最终转变为受人喜爱、羡慕的白天鹅。
1700477526
1700477527
1700477528
1700477529
1700477530 设计模式之禅 31.2.2 用适配器模式实现丑小鸭
1700477531
1700477532 采用适配器模式实现丑小鸭变成白天鹅的过程要从鸭妈妈的角度来分析,鸭妈妈有5个孩子,它认为这5个孩子都是她的后代,都是鸭类,但是实际上是有一只(也就是丑小鸭)不是真正的鸭类,她是一只小白天鹅,就像《木兰辞》中说的“雄兔脚扑朔,雌兔眼迷离。双兔傍地走,安能辨我是雄雌?”同样,因为太小,差别太细微,很难分辨,导致鸭妈妈认为她是一只鸭子,从鸭子的审美观来看,丑小鸭是丑陋的。通过分析,我们要做的就是要设计两个对象:鸭和天鹅,然后鸭妈妈把一只天鹅看成了小鸭子,最终时间到来的时候丑小鸭变成了白天鹅。我们来看类图,如图31-4所示。
1700477533
1700477534
1700477535
1700477536
1700477537 图31-4 适配器模式实现丑小鸭
1700477538
1700477539 类图非常简单,我们定义了两个接口:鸭类接口和天鹅类接口,然后建立了一个适配器UglyDuckling,把一只白天鹅封装成了小鸭子。我们来看代码,先看鸭类接口,如代码清单31-13所示。
1700477540
1700477541 代码清单31-13 鸭类接口
1700477542
1700477543 public interface Duck{
1700477544
1700477545 //会叫
1700477546
1700477547 public void cry();
1700477548
1700477549 //鸭子的外形
1700477550
1700477551 public void desAppearance();
1700477552
1700477553 //描述鸭子的其他行为
1700477554
1700477555 public void desBehavior();
1700477556
1700477557 }
1700477558
[ 上一页 ]  [ :1.700477509e+09 ]  [ 下一页 ]