跳至主要內容
Data Access Object

目的

对象为某种类型的数据库或其他持久性机制提供了抽象接口。

解释

真实世界例子

有一组客户数据需要持久化到数据库中。 我们需要整个额外的增删改查操作以便操作客户数据。

通俗的说

DAO是我们通过基本持久性机制提供的接口。

维基百科说

在计算机软件中,数据访问对象(DAO)是一种模式,可为某种类型的数据库或其他持久性机制提供抽象接口。


iluwatar大约 2 分钟ArchitecturalData access
Private Class Data

目的

私有类数据设计模式试图通过限制属性的可见性来减少属性的暴露。 通过将它们封装在单个Data对象中,可以减少类属性的数量。

解释

真实世界例子

想象一下你在为家人做晚餐炖汤。你想阻止家庭成员在你烹饪时偷偷品尝菜品,否则后面可能东西不够吃了。

通俗的说

私有类数据模式通过将数据与使用它的方法分离到维护数据状态的类中,从而防止了对不可变数据的操纵。

维基百科说

私有类数据是计算机编程中的一种设计模式,用于封装类属性及其操作。


iluwatar大约 2 分钟IdiomData access
Table Module

又被称为

表模块

Intent

表模块模式将域逻辑按数据库中的每个表组织为一个类,并且一个类的单个实例包含将对数据执行的各种过程。

Explanation

现实世界例子

当处理一个用户系统时,我们需要在用户表上进行一些操作。在这种情况下,我们可以使用表模块模式。我们可以创建一个名为 UserTableModule 的类,并初始化该类的一个实例,来处理用户表中所有行的业务逻辑。

直白点说

一个单独的实例,处理数据库表或视图中所有行的业务逻辑。


iluwatar大约 2 分钟StructuralData access
Unit Of Work

又被称为

工作单元

目的

当一个业务事务完成时,所有的更新都作为一个大的工作单元一次性发送,以最小化数据库的往返次数进行持久化。

解释

现实世界例子

武器商人拥有一个包含武器信息的数据库。
全城的商贩们都在不断地更新这些信息,这导致数据库服务器的负载很高。
为了使负载更易于管理,我们应用了工作单元模式,将许多小的更新批量发送。

用直白的话来说

工作单元将许多小的数据库更新合并成一个批次。
以优化往返次数。


iluwatar大约 3 分钟ArchitecturalData accessPerformance
Version Number

名字 / 分类

版本号

或称

实体版本控制,乐观锁。

目的

解决多个客户端尝试同时更新同一实体时的并发冲突。

解释

现实世界的例子

爱丽丝(Alice)和鲍勃(Bob)正在管理书,该书存储在数据库中。 我们的英雄们正在同时进行更改,我们需要某种机制来防止他们相互覆盖。

通俗地说

版本号模式可防止对同一实体进行并发更新。


iluwatar大约 3 分钟ConcurrencyData accessMicroservices