【架构师训练营第 1 期】第二周总结

用户头像
知鱼君
关注
发布于: 2020 年 09 月 27 日

编程本质

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

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

编程语言是一种“抽象”的机制,问题是对“谁”来抽象。

设计原则

开闭原则(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

  • 不应该强迫客户程序依赖它们不需要的方法。



用户头像

知鱼君

关注

还未添加个人签名 2018.03.26 加入

还未添加个人简介

评论

发布
暂无评论
【架构师训练营第 1 期】第二周总结