一、背景介绍
武侠中有修炼内功和外功之分;程序界也有,而设计模式就是程序界的内功心法之一;我们在写框架或者工程的时候都要尽可能的遵循设计原则,设计模式则是在不同场景下的具体应用。
阅读这篇文章您会了解到小编在进行设计模式宏观学习过程中的思路、总结以及产生的问题,希望能够和读者碰撞出更多的"车祸"。
二、学习思路
1.查阅设计模式的由来以及发展史
2.寻找5本以上讲解设计模式书籍(小编本次找了8本,具体书在本文的最后参考资料中)
3.将所有的书大致阅读一遍并绘制宏观的导图(每本书25分钟)
4.寻找2本自己感觉通俗易懂并且有趣的书(小编找的大话设计模式和刘伟的设计模式)
5.按照宏观的导图将每个模式都进行UML类图和代码的编写(按照需求绘制图、根据图写代码)
三、学习过程
1.百度百科模式查阅:软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
2.百度寻找相关电子书籍,也买了一些纸质书籍
3.宏观图
4.小编是按照创建型——结构型——行为型进行的UML类图绘制以及代码的编写(限于篇幅,下面只展示了UML图相信读者学习了《UML六大关系》可以结合图自己实践出来代码的)
5.扩展,类、抽象类、接口区别和理解:
5.1.类是对对象的抽象;抽象类是对类的抽象;接口是对行为的抽象
5.2.抽象类是自底而上抽象出来的;接口则是自顶向下设计出来的
5.3.如果行为跨越不同类的对象,可使用接口;对于一些类似的类对象,用继承抽象类
5.4.从设计角度,抽象类是从子类发现了公共的东西,泛化出父类,然后子类继承父类;而接口是根本不知道子类的存在,方法如何实现还不确认,预先定义
四、学习总结
收获:
1.有了历史了解更加明确了设计模式的重要性
2.多本书查阅发现每本书对于模式讲解的侧重都有所不同,体会理解作者的思考
3.根据宏观导图来手敲每个模式,冥冥之中每个模式又都有些许的关联,详细的内外在关联会在后面博文中做相关说明
4.深入学习了UML六大关系,再根据UML类图转换代码的过程中是如此的简单
提出的问题:
1.为什么要分为创建型、结构型、行为型?他们三类之间的关系是什么?
2.针对于每一个场景对应模式的出现她的历史意义是什么?
3.三个类型中各自包含的模式之间的关系是什么?
4.每个模式的充要条件是什么?
5.每个模式都实现了七大原则的那些原则?
五、升华
体会验证着公理+逻辑带来的美妙;解开一个个逻辑上的困惑的时候恍然发现学习还可以这么有趣。
参考资料:大话设计模式、java设计模式-刘伟、设计模式:可复用面向对象软件的基础、headfirst设计模式、Java设计模式第2版中文版、-设计模式那点事、设计模式之禅、架构整洁之道(clean Architecture)-Robert C.Martin