GeekBand C++ 李建忠老师 设计模式

第一讲

课程目标

理解松耦合设计思想

掌握面向对象设计原则

掌握重构技法改善设计

掌握GOF核心设计模式

GOF设计模式

历史性著作《设计模式:可复用面向对象软件的基础》,介绍了23种设计模式。

通常看过这本书的人都知道书的正标题,但是少有人会在意输的副标题:可复用面向对象软件的基础。可复用是设计模式的目标,面向对象是一种技术手法。

通常所说的设计模式隐含是面向对象设计模式,但是不等于说设计模式就是面向对象设计模式。

从面向对象谈起

面向对象隐含着两种思维模型,底层思维抽象思维

底层思维是指:向下,如何把握机器底层,从微观理解对象构造。如语言构造、编译转换(李老师在这里吐槽c++难学的一点就是c++的编译器在背后会做很多工作),内存模型,运行时机制。

抽象思维是指:向上,如何将我们的周围世界抽象为代码程序。如面向对象,组件封装,设计模式,架构模式。

深入理解面向对象

向下:深入理解三大main相对象机制

封装,隐藏内部实现

继承,复用现有代码

多态,改写对象行为

向上:深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,掌握什么是“好的面向对象设计”。

个人感触是多态的功能比继承来的更为强大,在代码解耦和、复用方面都更强大。同时,封装、继承、多态是面向对象的核心,要时刻记住这三点,面向对象设计模式也是围绕这三点展开的。

软件复杂的根本原因

软件复杂的根本原因是变,如果加上一个修定,就是频繁的变,特别容易就变。很多外行人会觉得写代码的人就是坐在电脑前,敲敲键盘就能解决问题,觉得很简答啊、没什么难的,但其实这是个误解。写代码很难,写好代码、没有错误的代码,是一种极高的技艺,的确不是那么简单的。

如何解决复杂性?

分解:人们面对复杂性有一个常见的做法,即分而治之

你可能感兴趣的:(GeekBand C++ 李建忠老师 设计模式)