《全栈工程师修炼指南》学习笔记 5
2023-01-02 本文已影响0人
VioletJack
Model
-
模型是什么?模型就是当我们使用软件去解决真实世界中各种实际问题的时候,对那些我们关心的实际事物的抽象和简化。
-
领域模型:我们会更关注这个领域范围内各个模型实体之间的关系。
-
模型可以是抽象的对象定义,也可以是具体的业务数据承载。
-
贫血模型:意味着模型实体在设计和实现上,很少包含逻辑。逻辑写在了相关的 Service 中。
- 所以更像是一定规则的封装容器。
- 数据与行为存在了 model 和 service 两处。
- service 代码会暴露 model 的行为,可能会因为滥用接口导致状态不一致。
- 其实封装了一个类似 Java Bean 的对象,只有定义以及 setter 和 getter。
-
充血模型:模型既包含数据、也包含逻辑,具有更高程度的完备性和自洽性。
- 更加面向对象,可以充分描述一种实体
- 封装性更好
-
model 层次划分:软件的耦合与复杂性问题往往可以通过分层解决。不过需要掌握分层的度。
-
在 CORS 模式下,模型层的接口只分为两种
- 命令,本身不返回任何结果,但会改变数据的状态。命令状态一定是不安全的。
- 查询,返回结果,但不会改变数据的状态。查询状态一定是安全的。
PS:其实像 vuex 这类状态管理库就是用的 CORS 模式。
-
在 MVC 中的 CORS 模式
- controller 通过命令调用 model 层,执行写入操作。
- view 通过查询调用 model 层,执行查询操作。
-
在 Model 层我们要经常与 SQL 打交道,需要有一定的 SQL 知识。