《软考设计模式之武功秘籍》
前言:
小编经历了第二次软考,在承接第一次软考的基础上,此次收获可谓是累累硕果,当然这里有大神相助,敬请期待大神给小编修炼秘诀。
秘诀传授:
故事
小编问:“设计模式该如何学啊?虽然经历过第一次软考,对于其中的关系,还有代码的编写是有所理解的,但是整体来说是不成体系的,是零散的,面对第二次软考,时长相较而言短暂,该如何应对呢?”
大神气定神闲,潇洒一坐,来教你一招:“学习设计模式这么学:以适配器为例,首先你得知道什么是适配器模式?”
“适配器模式(Adapter),将一个类的接口转换成客户所希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。”
融合到生活中,你可以想:你有一款手机,你想要戴耳机听歌,但是这个接口不适配,所以需要一个中介,来讲耳机与手机相连,从而达到听歌的目的。
小编立刻点点头。
其次,咱们看适配器模式(Adapter)结构图,也就是我们所说的UML图:
Target:目标接口,也就是我们想要能适合插耳机的手机接口
Adapter:适配器,也就是中介
Adaptee:源接口,即为现有的无法连接耳机的手机
在适配器模式的UML图中,涉及到两个关系:继承(泛化)、关联
紧接着,看图,看代码,看的时候也要讲究套路,宏观把控分为几个类,然后看继承、关联两者的关系在代码中如何体现?
最后,大神认真而负责地嘱托:有一件事情,你必须去做:看图,写代码。大神传授秘诀之后,潇洒离开,留下小编消化大神的箴言。
经验之谈
小编与大神的故事到这里告一段落,相信读者也从中get到了学习设计模式的套路:原理-UML图-代码
既然方向已经有了,接下来就是见证奇迹的时刻,如何见证奇迹,就是脚踏实地去做,just do it.
除了上述的三部曲之外, 在软考的《软件设计师教程》中,详细阐述了UML图中各个类的含义:
1.Target定义Client使用的与特定领域相关的接口
2.Client与符合Target接口的对象协同
3.Adaptee定义一个已经存在的接口,这个接口需要适配
4.Adapter对Adaptee的接口与Target接口进行适配
另外,介绍了Adapter模式适用于:
1.想使用一个已经存在的类,而它的接口不符合接口
2.想创建一个可以服用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作
3.(仅适用于对象Adapter)想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配他们的接口。对象适配器可以适配它的父类接口。
在软考中,将《大话设计模式》与《软件设计师教程》两相结合,于上午题和下午题都有利,这便是双赢。其实在小编的叙述中大家会发现,学习一个知识的套路是:
what-how-why-where.设计模式亦是如此。
有可能这样的思想我们早就接触过,像大神最后的嘱托:有一件事情,你必须做,看图,写代码。曾经导师如是说,然小编却没有落实到行动上,明明是:must be,而自动转化成:may be.如此,我们都会想到一句话:出来混,迟早是要还的。
小编口中的大神可贵的是to do it and summary it and share it.
结语:
根据小编的实践经验来看,按照以上套路大约进行8个模式,便会有相应的规律在你脑海中呈现,这样的规律是显而易见的,想要不get到都难,关键在于我们是否去做,是否去思考,是否去总结。愿软考一切顺利。