架构师训练营第 2 周总结
一、 软件开发史
(1) 编程的本质是用计算机来解决现实世界的问题,编程语言是一种抽象机制。
(2) 面向对象编程: 对象具有状态、行为和标识。 同时具有三个特征: 封装、继承、多态。
二、面向对象设计原则:
软件设计的“臭味”:僵硬、脆弱、不可移植、导致误用的陷阱、晦涩、过度设计'copy-paste' 代码。
OOD 原则一: 开闭原则(OCP)
扩展是开发的
更改是封闭的
如何实现不修改源代码而扩展:
方法一: 抽象
方法二: 策略模式
方法三: 适配器模式
方法四: 观察者模式
OOD 原则二:依赖倒置原则(DIP)
高层模块不能依赖低层模块,而是大家都依赖于抽象
抽象不能依赖实现,而是实现依赖抽象。
遵循好莱坞规则: Don't call me, I'll call you.
OOD原则三: Liskov 替换原则(LSP)
实现OCP 的关键在于抽象, 而抽象的威力在于多态和继承。一个正确的继承要符合什么要求: 里氏替换原则。
OOD原则四: 单一职责原则(SRP - Single Responsibility Principle)
'内聚性原则' 即一个模块的组成元素之间的功能相关性
一个类,只能有一个引起它变化的原因
即: 一个职责是一个变化的原因。
OOD原则五:接口分离原则(ISP - Interface Segregation Principle)
不应该强迫客户程序依赖他们不需要的方法
评论