工厂模式是我需要的吗?

时间:2016-02-01 10:11:20

标签: design-patterns optimization

在我开始构建某些东西之前,我只想清楚自己的想法。我正在建立一个导入器,导入器将始终接受以下数据:

[SKU,名称,颜色]

但是,由于供应商的原因,发送给导入程序的数据可能使用不同的列名和不同的文件格式(CSV或excel等)。那么我是否需要创建某种映射器来说X列在我的数据库中意味着X列?

我认为最好的方法是构建一个接口,然后每个供应商都有自己的实现,包含一个列名映射器,然后使用工厂模式构建最终对象。

我可能完全错了,所以有没有人有过构建这类东西的经验以及你使用了什么?

由于 奥利

1 个答案:

答案 0 :(得分:1)

工厂可以很好地解决您的情况,但恕我直言,它不会考虑两个地方的变化:源和列。如果你只有一个可能的变化的地方,那么工厂很棒。但是如果你有两个地方(数据源和列),可以考虑抽象工厂。我可以为您的案例提出的另一个解决方案是使用带有IMapper的ISourceImporter(用于Excel,csv,其他源)的桥接器(用于不同的列组合)。它将使您可以轻松添加新的源导入程序并轻松添加新的列组合。恕我直言桥将是更好的解决方案。