常说的设计模式是23种设计模式,分为3大类:
- 创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
- 结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
- 行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。
上次咱们说了“装饰者模式”。今天咱们聊一聊结构型模式中的“外观模式”。
结构型模式重点在于结构的变化。
“外观模式”又叫“门面模式”不是一个复杂的结构,简单的来说是把多个类的功能集中到一个类的身上,最终用一个类的对象使用出多个类的功能方法。
先准备两个类
A类有a1的方法
B类有b1的方法
再准备一个对外的类
A的对象和B的对象是Face类的两个属性
在a1方法中调用A对象的a1
在b1方法中调用B对象的b1
实际应用的时候,只用Face的对象就能调用出两个对象的两个方法
不用去关心两个方法的具体实现细节
又到了讲故事的环节。
《三国演义》中,刘备摔孩子是一个经典桥段。
有一句歇后语“刘备摔孩子—收买人心”。起因是赵云赵子龙,单枪匹马杀入曹营救出幼主。才有了刘备摔孩子的戏码。但是具体的“七进七出”并不关心,而是最终结果的展示。
赵云:
第一回合:赵云与曹操大军混战,丢了甘夫人糜夫人及阿斗。
第二回合:赵云找到甘夫人后遭遇曹仁部将淳于导将其击杀,并救下糜竺。甘夫人糜竺交给张飞,自己继续寻找阿斗。
第三回合:刺死背剑将军夏侯恩,夺得青釭剑。找到糜夫人及阿斗。糜夫人投井自尽,赵云怀抱阿斗杀出。
第四回合:赵云刺死曹洪的部将晏明。
第五回合:赵云遭遇曹操上将张合,赵云坐骑陷入土坑,后逃脱。
第六回合:赵云遭遇袁绍手下四将,马延、张顗、焦触、张南,并遭到曹操重兵包围。杀死曹操战将五十余员。后突围。
第七回合:赵云杀出重围后遭遇夏侯敦部将钟缙、钟绅,将其杀死。
刘备:
“险些折损我一员猛将”
摔阿斗~~
赵云的行为“七进七出,救出阿斗”
刘备的行为“救回阿斗,摔~”
外观类“调用行为,控制流程”
最后结果“七进七出救阿斗,刘备摔儿子拉拢人心”,从此以后赵云死忠刘备。