开发者工具箱|编程·开发工具·资源
779 subscribers
1.43K photos
766 links
面向开发者的实用工具、库与效率技巧,写代码更快更爽。投稿 @BDHT1
#开发者 #编程工具 #效率 #程序员 · 开源总站 @GitHubTrendingHub
Download Telegram
完整示例:用仓库模式与依赖注入实现 SOLID

Repository Pattern 把所有与数据源(数据库、API、文件等)的交互封装进单一类,业务层只面对简洁的接口,就像图书馆的管理员负责取书,访客只需提出请求。代码中通过 IBookRepository 定义获取、查询、预订等操作,由 BookRepository 实现具体的数据访问。

Dependency Inversion Principle(DIP)要求高层模块依赖抽象而非具体实现,本文把业务类 BookReservationService 的构造函数参数声明为 IBookRepository 与 INotificationSender 接口。依赖注入(DI)则是把具体实现(BookRepository、EmailNotificationSender、SmsNotificationSender)在容器注册后自动注入,完成 DIP 的落地。

在示例里,单一职责体现在每个类只承担数据访问、业务规则或通知发送一种职责;开放/封闭体现在新增 SmsNotificationSender 时无需修改业务代码;里氏替换保证任意实现 INotificationSender 都可直接使用;接口隔离让 INotificationSender 只保留 SendAsync 一个方法,避免臃肿。

通过这套完整的图书预订系统,开发者可以直观看到 SOLID 五大原则在实际代码中的具体体现,并快速在自己的项目中复用相同的结构。


GitHub: GitHub

#开发者 #工具 #SOLID #RepositoryPattern #DependencyInjection #CSharp #DotNet
@DevToolboxHub