美文网首页
通过设计深模块来减小复杂度

通过设计深模块来减小复杂度

作者: 全新的饭 | 来源:发表于2022-04-21 16:36 被阅读0次

为何要划分模块?

分离关注点:将大复杂分割成若干小复杂。
使开发者在任何时候都只需要面对整体复杂度的一小部分(当前所处模块)

模块是什么?

一个系统由若干相互关联(依赖)的模块构成。
模块 = 接口 + 实现

在某模块内部工作时,开发者需理解

  1. 该模块的接口和实现
  2. 该模块依赖的其他模块的接口

如上所述,为降低复杂度,应尽量让接口简单(简单包括容易使用、容易理解)。

接口

该模块能做什么?
需注意:接口不止指的是供依赖本模块的其他模块调用的本模块的字段、方法等,还包括外部使用本模块功能的要求(使用规则、限制条件,即正确的使用方式)
可将模块的接口理解为:开发者使用模块时,需掌握的全部信息。

对于使用模块的人来说,该模块的接口是该模块的抽象(抽象是实体的简化视图,它省略了不必关注的细节)。

抽象是非常有效的降低(隐藏)复杂度的方法!

实现

怎么做:完成接口作出的承诺。

设计模块时,要设计深模块

深:功能(实现)强大、接口简单。
隐藏了足够的复杂度。

相关文章

  • 通过设计深模块来减小复杂度

    为何要划分模块? 分离关注点:将大复杂分割成若干小复杂。使开发者在任何时候都只需要面对整体复杂度的一小部分(当前所...

  • 机器学习基石笔记:14 Regularization

    一、正则化的假设集合 通过从高次多项式的退回到低次多项式的来降低模型复杂度,以减小过拟合的可能性。如何退回? 通过...

  • 软件的几种设计

    软件的几种设计 可插拔设计 软件分模块呈现 所有模块都可以独立存在 通过控制中心来控制所有模块的加载 控制中心可以...

  • 《软件设计的哲学》读书笔记

    深模块/浅模块 作者使用深模块和浅模块的概念来形容模块封装的不同程度。 深模块:即暴露给用户极少的必要接口,其它的...

  • 正则化

    一句话概括:正则化(Regularization)是机器学习中一种常用策略,目的是降低模型复杂度,减小过拟合,通过...

  • 向量化

    什么是向量化 通过向量运算的方法可以大大减小代码量以及复杂度和时间 向量化之后将会提高运算速度 在进行深度学习中尽...

  • 登录模块的设计

      最近做完系统登录模块的重构,登录这块的核心在于安全的控制。下面通过本文来总结一下登录模块的设计实现,以及哪些方...

  • 数据库设计

    数据库架构设计 以用户中心为例,当数据库访问量增大的时候,我们设计可以通过数据库主从分离进行分组,然后通过分片减小...

  • 【组件模块化4】CSS模块化设计

    CSS模块化设计 设计原则 设计方法 a、可复用能继承要完整 比如拿到这个设计图,来思考css的模块设计。 可能觉...

  • 深入解析 MVC、MVP 与架构间的实现方式

    MVC、MVP与架构 1. 架构设计的目的 通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合 这样做的...

网友评论

      本文标题:通过设计深模块来减小复杂度

      本文链接:https://www.haomeiwen.com/subject/cnziertx.html