设计模式
这几天在看GoF的《设计模式——可复用面向对象软件的基础》,发现晦涩难懂,在网上搜索视频教程,搭配学习。李建忠老师讲的”设计模式“教程,循序渐进,非常棒。
写下笔记,吸收更快
什么是设计模式
——Christopher Alexander
从面向对象谈起
-
底层思维:向下,如何把握机器底层,从微观理解对象构造
-
语言构造
-
编译转换
-
内存模型
-
运行时机制
-
-
抽象思维:向上,如何将我们的周围世界抽象为程序代码
-
-
组件封装
-
设计模式
-
架构模式
-
深入理解面向对象
-
向下:深入理解三大面向对象机制
-
封装:隐藏内部实现
-
继承:复用现有代码
-
多态:改写对象行为
-
-
向上:深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,掌握什么是“好的面向对象设计”
软件设计复杂的根本原因——变化
-
客户需求的变化
-
技术平台的变化
-
开发团队的变化
-
市场环境的变化
变化不断冲击软件结构,摧毁我们的设计!
如何解决复杂性?
-
分解
分而治之,大问题->多个小问题,复杂问题->多个简单问题
-
抽象
由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化了的对象模型
软件设计的目标
什么是号的软件设计?软件设计的金科玉律:复用!!!
总结
在软件开发中,像我这样的菜鸟,做的最多的就是复杂粘贴代码,但这并不是有效的复用,也不是好的是编码风格。设计模式将软件设计中重复遇到的问题,总结出一个个模式,每个模式代表对应问题的核心解决方案,这样我们可以重复使用该方案。