第一讲
课程目标
理解松耦合设计思想
掌握面向对象设计原则
掌握重构技法改善设计
掌握GOF核心设计模式
GOF设计模式
历史性著作《设计模式:可复用面向对象软件的基础》,介绍了23种设计模式。
通常看过这本书的人都知道书的正标题,但是少有人会在意输的副标题:可复用面向对象软件的基础。可复用是设计模式的目标,面向对象是一种技术手法。
通常所说的设计模式隐含是面向对象设计模式,但是不等于说设计模式就是面向对象设计模式。
从面向对象谈起
面向对象隐含着两种思维模型,底层思维和抽象思维。
底层思维是指:向下,如何把握机器底层,从微观理解对象构造。如语言构造、编译转换(李老师在这里吐槽c++难学的一点就是c++的编译器在背后会做很多工作),内存模型,运行时机制。
抽象思维是指:向上,如何将我们的周围世界抽象为代码程序。如面向对象,组件封装,设计模式,架构模式。
深入理解面向对象
向下:深入理解三大main相对象机制
封装,隐藏内部实现
继承,复用现有代码
多态,改写对象行为
向上:深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,掌握什么是“好的面向对象设计”。
个人感触是多态的功能比继承来的更为强大,在代码解耦和、复用方面都更强大。同时,封装、继承、多态是面向对象的核心,要时刻记住这三点,面向对象设计模式也是围绕这三点展开的。
软件复杂的根本原因
变
软件复杂的根本原因是变,如果加上一个修定,就是频繁的变,特别容易就变。很多外行人会觉得写代码的人就是坐在电脑前,敲敲键盘就能解决问题,觉得很简答啊、没什么难的,但其实这是个误解。写代码很难,写好代码、没有错误的代码,是一种极高的技艺,的确不是那么简单的。
如何解决复杂性?
分解:人们面对复杂性有一个常见的做法,即分而治之
网友评论