将不同的数据类型传递给库时我应该遵循哪种设计模式?

时间:2015-07-22 14:12:51

标签: c# csv design-patterns inversion-of-control

我正在创建一个CSV导出库,输入数据来自不同的来源,就像我们可以将用户数据导出到CSV一样,我们也可以将Orders数据导出为CSV。

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

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

请指导?

2 个答案:

答案 0 :(得分:2)

看来你做得很好。如果您还没有遇到任何问题,请不要寻求设计模式。尊重KISSYAGNI原则。继续遵循您提到的OOD原则。

在你的情况下,最重要的是制作" FeedCSVProcesser"与它应该处理的文件分离。每次要导出新课程时,您都不想更改此课程。

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

答案 1 :(得分:0)

正如@TechWisdom所说,你做得很好,你可以用你的设计进行施工。您的设计似乎接近策略模式,其中根据值执行特定算法。