我正在尝试学习更好的软件设计,最近发现了存储库和服务层模式。据我所知,存储库基本上包含数据访问代码,服务层调用存储库获取数据,然后对该数据执行一些逻辑和处理。
到目前为止,从对这些模式的阅读中可以得出,通常没有一组固定的方法来定义存储库。但是,存储库通常具有以下方法:
- 列出 / 获取 / 读取 等。 - 创建 - 保存 - 更新 - 删除
我想理解存储库的命名约定。"List/Get/Read"等方法应该如何命名?我会给一个例子。
我目前正在开发一个从一堆目录和文件中读取内容的项目。这些文件代表由完全独立且已经存在的系统生成的传感器读数。
方法名称应特定于该特定类型的存储库,还是应采用更为通用的名称?例如:
通用名称:
到目前为止,从对这些模式的阅读中可以得出,通常没有一组固定的方法来定义存储库。但是,存储库通常具有以下方法:
- 列出 / 获取 / 读取 等。 - 创建 - 保存 - 更新 - 删除
我想理解存储库的命名约定。"List/Get/Read"等方法应该如何命名?我会给一个例子。
我目前正在开发一个从一堆目录和文件中读取内容的项目。这些文件代表由完全独立且已经存在的系统生成的传感器读数。
方法名称应特定于该特定类型的存储库,还是应采用更为通用的名称?例如:
通用名称:
interface ISensorRepository
{
IEnumerable<Sensor> GetAll(); / IEnumerable<Sensor> ListAll(); / etc.
Sensor GetByID(int id);
}
实体特定名称:
interface ISensorRepository
{
IEnumerable<Sensor> GetAllSensors(); / IEnumerable<Sensor> ListAllSensors(); / etc.
Sensor GetSensorByID(int id);
}
List<T>
。如果消费者在列表中添加了内容会发生什么?这是否会导致数据库更新?如果两个不同的消费者同时向列表中添加或删除内容,他们会互相影响吗?我不知道该期望什么。请使用最适合您需求的最通用类型,即IEnumerable
或IQueryable
。 - JounceCracklePop