【架构师训练营第 1 期】第二周总结
编程本质
编程的目的是:用计算机来解决现实世界的问题。
编程的过程即:在计算机所能理解的“模型”(解空间)和现实世界(问题空间)之间,建立一种联系。
编程语言是一种“抽象”的机制,问题是对“谁”来抽象。
设计原则
开闭原则(OCP)
OCP - Open/Closed Principle
对于扩展是开放的(Open for extension)
对于更改是封闭的(Closed for modification)
简言之:不需要修改软件实体(类、模块、函数等),就应该能实现功能的扩展。
依赖倒置原则(DIP)
DIP - Dependency Inversion Principle
高层模块不能依赖低层模块,而是大家都依赖于抽象;
抽象不能依赖实现,而是实现依赖抽象。
Liskov替换原则(LSP)
在Java/C++ 这样的静态类型语言中,实现OCP 的关键在于抽象,而抽象的威力在于多
态和继承。
一个正确的继承要符合什么要求呢?
答案:Liskov 替换原则
单一职责原则(SRP)
SRP - Single Responsibility Principle
又被称为“内聚性原则(Cohesion)”,意为:一个模块的组成元素之间的功能相关性。
将它与引起一个模块改变的作用力相联,就形成了如下描述: 一个类,只能有一个引起它的变化的原因。
接口分离原则(ISP)
ISP - Interface Segregation Principle
不应该强迫客户程序依赖它们不需要的方法。
评论