想要实现基于配置将数据保存到DB或Kafka的设计模式

问题描述 投票:0回答:1

我想实现一种设计模式,根据配置将数据保存到DB或Kafka。例如,如果配置值为DB=1,则保存到数据库,否则保存到Kafka。

我正在考虑使用中介者模式来实现它,但在实现部分不太确定。

c# design-patterns adapter mediator
1个回答
0
投票

您需要使用通用接口来实现这两种持久性机制。像这样的东西:

interface IPersistence{
   Task SaveAsync(IEnumerable<Foo> entries);
}

class DbPersistence : IPersistence { /* implementation here */ }
class KafkaPersistence : IPersistence { /* implementation here */ }

在引导时,您可以从配置文件中读取所需的持久性系统,并使用依赖注入库(例如来自 .NET 的现成库)来注册正确的实现。

如果您希望在 runtime 进行此选择,情况当然会有所不同。在这种情况下,我会使用策略或工厂模式。

© www.soinside.com 2019 - 2024. All rights reserved.