架构师第二周

发布于: 2020 年 06 月 17 日
架构师第二周

框架VS工具

  • 框架调用应用程序代码

  • 应用程序代码调用工具

  • 框架是架构落地的保障

开闭原则(OCP)

  • 关键是抽象

  • 抽象后用多态实现

  • 不修改软件实体

依赖倒置原则(DIP)

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

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

  • 依赖倒置原则是框架设计核心原则

  • 依赖倒置一般用策略模式解决

举例:

Controller -> IService -> ServiceImpl
(不符合依赖倒置, 这种方式, Controller层依赖于Service, 调用Service定义方法)
Controller -> 功能接口(不关心谁实现) -> ServiceImpl
(符合依赖倒置, 这种方式, Controller规定了接口, ServiceImpl根据此规定实现方法)

DIP倒置了什么

  • 模块或包的依赖关系

  • 开发顺序和职责 (组织结构的改变, 分工的关系)

里式替换原则(LSP)

  • 子类型必须能替换基类

  • 子类有更大的访问控制

  • 子类的 契约 不能比基类更严格

如何解决不符合LSP的代码

  • 提取共性, 放到基类中

  • 改为组合 (使用 适配器 的方式)

单一职责原则(SRP)

  • 一个类只有一个会引起变化的点

接口分离原则(ISP)

  • 不强迫客户依赖不需要的方法

  • 不把这些方法暴露出来

SRP要做到很困难, 某些场景下无法分隔, 使用ISP接口隔离可以解决暴露出不必要方法的问题

用户头像

Tulane

关注

还未添加个人签名 2018.09.18 加入

还未添加个人简介

评论

发布
暂无评论
架构师第二周