我发现自己经常实现一个类,作为我的业务实体的光荣容器。通常我只是用“model”作为那个类的后缀,这是非常不描述性和宽泛的。你知道吗
例如(python):
class MyBusinessEntity:
pass
class MyBusinessEntityModel:
def __init__(self):
self.entities = []
def create_entity(self):
self.entities.append(MyBusinessEntity())
# Implement the rest of the CRUD operations
这个类将充当我的主数据存储库,并且很可能使用某种数据访问对象进行持久存储。你知道吗
这种类有名字吗?我遇到了Repository Pattern,但我不知道这是否真的是我要找的东西。你知道吗
没错,这基本上是Repository Pattern的内存实现。通常,应用程序服务(在实现用例的地方)会使用它来检索业务对象并对其进行处理。你知道吗
存储库类型
存储库的两种主要风格是集合式存储库和命令式存储库。前者试图尽可能地模拟内存中的集合,而后者有一个基于命令的接口。主要区别在于更新:命令风格的存储库有一个显式的
update
方法。你知道吗用法
让我们继续使用这个示例的命令样式存储库。在这样的示例中,读取用例通常如下所示(伪代码):
create调用可能看起来像
更新电话可能看起来像
关于您的实施的说明
代码示例有点奇怪的一点是,存储库本身实例化了业务对象。这不是存储库的责任。
相反,应用程序服务将创建一个,并通过
create
调用将其传递给存储库。因此,存储库上的create
通常并不意味着“创建业务对象”,而是“将此对象添加到数据存储中”。对于内存中的存储库,这只意味着将对象添加到内部集合中。你知道吗相关问题 更多 >
编程相关推荐