70、构建持久化无关、可测试应用程序的指南

构建持久化无关、可测试应用程序的指南

1. 项目结构规划

在之前创建 POCO 类时,所有相关的部分都放在了一个项目中。但为了实现更灵活和可复用的解决方案,我们需要将各个类进行分离。构建敏捷软件有一个重要的设计模式——仓储模式(Repository Pattern)。仓储是一个包装器,让我们可以像操作集合一样操作实体,而无需关注如何将实体存入或取出数据库,也不用关心如何通过 Web 服务发送和检索实体。

实现仓储有多种方式,有些解决方案会为每个“根”实体构建单独的仓储,而有些则会针对特定的关注点构建仓储。在后续的示例中,我们将为每个实体构建仓储。

以下是拆分逻辑部分的基本模式:
| 项目类型 | 描述 | 引用需求 |
| ---- | ---- | ---- |
| 类:实体类(类库) | 存放 POCO 类,无需引用 System.Data.Entity | 无 |
| 模型:实体数据模型和 ObjectContext(类库) | 包含 EDMX 和继承自 ObjectContext 的类 | 引用 System.Data.Entity 和包含 POCO 类的项目 |
| 仓储(类库) | 为每个实体类构建一个名为仓储的包装类,实现 IRepository 接口 | 引用相关项目 |
| 接口(类库) | 包含上下文类的重要接口 | 引用相关项目 |
| 用户界面 | 客户端应用程序(如控制台应用、Windows 窗体或 WPF)需要引用仓储项目和类项目 | 引用仓储项目和类项目 |
| 测试项目 | 用于验证各层的交互 | 无 |

我们将逐步构建这个模式。对于测试驱动开发的开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值