架构师训练营 -W02S- 架构设计

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

编程的本质

从莱布尼茨的奇思怪想,到人类第一位程序媛,再到冯诺伊曼在ENIAC计算机上运行的第一个程序。人类总是在不断的思考者如何用计算机来解决现实中的问题。编程方式也经历了面向机器编程、面向过程编程、面向对象编程的发展。

面对对象设计

  • 面对对象分析:将客观世界,即编程的业务领域进行对象分析。

  • 面对对象编程:并非指使用了面向对象的语言编程就是面对对象编程,而是指利用了面对对象的多态特性进行编程。

  • 面对对象设计的基本原则:高内聚、低耦合。

面对对象软件设计原则(SOLID原则)

单一职责原则(SRP)

  • 一个类只有一个引起它变化的原因。

  • 违反SRP原则的后果:脆弱性和不可移植性。

  • 一个类的代码长度不要超过一屏。

开/闭原则(OCP)

  • 对扩展是开放的,对更改是封闭的。

  • 不需要修改软件实体(类、模块、函数等),就应该能实现功能的扩展。

  • 抽象是实现不修改而扩展的关键。

里氏替换原则(LSP)

  • 子类型必须能替换基类型。

  • LSP要求,凡是使用基类的地方,一定也适用于其子类。从更广泛的意义来看,子类的“契约”不能比基类更严格。

  • 重构代码解决里氏替换原则的方法:1、提取共性到基类。2、优先使用组合。

接口分离原则(ISP)

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

  • ISP和SRP的关系:1、SRP应尽量拆开。2、ISP在拆不开的情况下,使用接口进行隔离。

依赖倒置原则(DIP)

  • 高层模块不能依赖低层模块,而是都依赖于抽象;抽象不能依赖实现,而是实现依赖抽象。

  • DIP倒置了模块或包的依赖关系,以及开发顺序和职责。

  • 对于软件层次化,软件高层应被重用,高层决定低层。高层定义接口,低层实现接口,高层、低层都依赖实现。

  • DIP也被称为好莱坞规则:Don't call me, I'll call you.

  • 应用程序不要调用框架,而是在框架内“填肉”,调用应用程序。

用户头像

BlazeLuLu

关注

还未添加个人签名 2018.05.30 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-W02S-架构设计