Day 3: 我不想知道的太多,以免被连累.单一职责与最小知道原则

Keyword: 单一职责 最小知道


单一职责与最小知道

在MVVM中,单一职责与最小知道原则是非常重要的.可以说是MVVM的核心概念也不为过.

单一职责

当某个组件需要对很多层级负责时,就很容易膨胀的非常快,成为所谓的God Object,最後甚至变成没有人可以理解他在做什麽用就对了的黑盒子状态.在MVC中就很常发生这个问题.

如果这个God Object只有Android或iOS自己使用的话倒还好

但是当今天要跨平台的时候,God Object无法照着预想中的去掌控全局,各平台也有独立的特性,而这些特性可能不能共通.神在这里也不是无所不能的.

https://github.com/officeyuli/itHome2021/raw/main/day3/god-is-dead.jpeg

在开始写code之前,先问问自己,这行code是要做什麽的,它放在这边对嘛?

最小知道

当某个组件知道了太多他在使用上不需要知道的东西,就很容易产生side effect . 明明我这次没有修改到的东西,但是因为其他地方有引用.结果就坏掉了.

另外就是由於MVVM的设计,不会知道外面是怎麽使用自己,所以如果超出职责的资料,就容易被误用.因此,下层的组件应该只提供最少的可行的资讯量给上层.

在开始写code之前,先问问自己,我有必要要知道这个嘛?不知道这个我可以正常使用嘛?

把握住这些原则,在写KMM的时候就更容易写出一个优雅且解耦的专案

明天我们将会正式开始KMM的专案.


<<:  [Day8] 词性标注(三)-Viterbi 演算法

>>:  [重构倒数第23天] - Tab 的 page 加入 router

企划实现(18)

在撰写程序时我发现了一个以前没有遇到过的事情,我原先一直以为是因为环境导致的但是後来我发现跟环境没有...

[Day25] Angular 的 Module 与 Component

昨天我们建立了一个新的 Angular 专案,然後跑了一下内建的范例程序,今天我们要来动手加入一些自...

Day26_CSS语法9

再来要介绍框线属性 border-style(框线样式) 框线的样式有很多种,例如:none(无,预...

postman

昨天介绍了API,今天要介绍一个postman的应用程序,它是一个可以让我们检查和实作API的app...

Day47. 组合模式

本文同步更新於blog Composite Pattern 允许将对象组合成树形结构来表现整体/部...