架构师第二课总结

用户头像
Dennis
关注
发布于: 2020 年 06 月 17 日

本次课程主要讲了编程的历史以及面向对象的常用设计模式

1、历史上推动软件编程重大革新的人

莱布尼茨的奇思怪想

法国人雅尔卡的可编程织布机

英国人Ada的打孔纸袋编程

现代的图灵、冯诺伊曼

2、形形色色的编程语言

汇编语言、早期的Basic语言、结构化Basic语言(Quick Basic、Visual Basic等)

Perl语言、C语言、C++语言、JAVA语言、等等

3、编程语言的实质

编程的目的:是用计算机来解决现实世界的问题

编程的过程:是在计算机所能理解的模型(解空间)和现实世界(问题空间)之间,建立一种联系

编程语言是一种‘抽象’ 的机制,问题是对‘谁’来抽象

4、编程方法的演进

5、什么是面向对象编程

1.万物皆对象

2.程序是对象的集合,它们通过发送消息来告知彼此所要做的

3.每个对象都有自己的由其他对象所构成的存储

4.每个对象都拥有其类型

5.某一特定类型的所有对象都可以接收同样的消息

6、什么是对象? 对象具有状态、行为、标识

7、面向对象编程的三要素? 封装性、继承性、多态性

8、面向对象设计的目的

目的是为了强内聚、低耦合,从而使系统易扩展、更强壮、可移植、更简单

9、不好的软件设计有那些标志

僵硬 - 不易改变

脆弱 - 只想改A,结果B也被改变

不可移植 - 不能适应环境的变化

导致错误的陷阱 - 做错误的事比做正确的事更容易,引诱程序员破坏原有的设计

晦涩 - 代码难以理解

过度设计 、 copy-paster代码

10、 OOD原则一: 开闭原则(OCP)

OCP - Open / Closed Principle

对于扩展是开放的

对于更改是封闭的

简而言之就是不需要修改软件实体(类、模块、函数等),就能实现功能的扩展

传统的扩展模块的方式就是修改模块的源代码。如何实现不修改而扩展呢?

关键在于抽象

可以使用策略模式、适配器模式、观察者模式等进行实现

11、OOD原则二: 依赖倒置原则(DIP

DIP - Dependency Inversion Principle

高层模块不能依赖底层模块,而是大家都依赖于抽象

抽象不能依赖实现,而是实现依赖抽象

DIP倒置了什么

模块与包之间的依赖关系

开放的顺序与职责

软件的层次化

高层决定低层

高层被重用

12、 框架的核心

好莱坞规则: Don't call me ,I'll call you

倒转的层次依赖关系

用户头像

Dennis

关注

还未添加个人签名 2017.12.21 加入

还未添加个人简介

评论

发布
暂无评论
架构师第二课总结