当向库传递不同的数据类型时,我应该遵循哪个设计模式

本文关键字:我应该 设计模式 数据类型 | 更新日期: 2023-09-27 18:03:57

我正在创建一个CSV导出库,其中输入数据将来自不同的来源,例如我们可以将用户数据导出到CSV,我们也可以将订单数据导出到CSV。

我正在考虑创建一个feedcsvprocessor,我们将从输入数据中准备CSV。

输入数据将具有定义的类型,例如对于用户它将是UserFeed,对于订单它将是OrdersFeed,并且所有共享公共接口IFeedType。然后,我们可以使用DI原则,并使用反射从IFeedType中提取数据并准备CSV。这种方法是正确的,因为我不确定我遵循什么样的设计模式或应该有什么。

当向库传递不同的数据类型时,我应该遵循哪个设计模式

看来你做得很好。如果你还没有任何问题,就不要去寻找设计模式。尊重KISS和YAGNI原则。继续遵循你提到的OOD原则。

在你的情况下,最重要的事情是使"feedcsvprocessor"从它应该工作的文件解耦。您不希望每次导出新类时都更改这个类。

正如您所提到的,依赖倒置原则是这样做的一种特定形式。像"feedcsvprocessor"这样的高级模块不应该依赖于低级模块("Orders"、"Users")。两者都应该依赖于抽象("IFeedType")。

正如@TechWisdom所说,你做得很好,你可以用你的设计来承载一个建设过程。你的设计似乎很接近策略模式,其中根据特定算法的值执行。