Rom*_*lla 5 c# design-patterns
一点背景:
在我正在开发的系统中,有各种类型的CSV文件需要读取并将内容保存在不同的数据库表中.由于这是关于根据输入改变行为,我研究了装饰器和策略模式,并为我的系统提出了以下解决方案.
首先,我创建了以下接口.
ICDRMapper从给定的CSV文件中读取每一行,并在运行验证/修改(如果有)后映射到对象.每种CDR类型都有许多具体实现.
ICDRReader获取输入的CSV文件并读取每一行并将其传递给映射器.每个阅读器实现都使用MEF元数据进行修饰,以便ICDREngine可以即时找到正确的元数据.该接口还为每种CDR类型提供了许多实现.
ICDREngine实现使用MEF元数据来定位匹配的ICDRReader实现.这通常只有一个实现.
然后,我创建了一个AbstractCDRReader和AbstractCDRMapper使用的装饰器模式,将特定的实现委托给不同的具体类.
AbstractCDRReaderICDRMapper像引擎一样,根据MEF元数据选择正确的实现.
以下是生成的类图.

所以我的问题是,
这种策略模式还是不同的模式?
有什么方法可以改进这个设计,以便下次我需要阅读一个全新的不同的CSV文件时,我可以很快地完成实现吗?
您已经描述了系统的一部分的架构。它使用很少的设计模式:
对我来说,你的架构看起来不错而且灵活。我不确定您希望改进什么以便更轻松地添加读取新 CSV 格式的功能 - 目前您需要的只是添加 ICDRReader 的新实现,不是吗?因此,从我的角度来看,这很容易,并且对于这个特定的“问题”没有任何改进。