我必须调用一个传统的SOAP Web服务,它从一个发送JSON中描述的数据的干净(呃)REST Web服务发送一个原始DataSet.
我需要将列出我的对象的原始数据集转换为真正的对象列表.
我得到的数据集没有足够的信息,因此转换不是"简单".它涉及从每个对象的DB中获取附加数据.
这样做的最佳设计模式是什么?我的第一个天真的反射是创建一个方法,将这个数据集作为参数,解析它,并返回一个对象列表,但我觉得必须有一个更好的方法来做到这一点.
我已经看到了适配器模式,但我理解它"仅"将现有类转换为"看起来像它"的另一个类.我想完全将数据从类似于带有id和name的字符串表的内容更改为包含每个有用信息的真实实例集合.
我还有另一个类似的问题.我们有一个旧的桌面应用程序和一个新的在线应用程序,它们以不同的方式执行相同的操作.但是,这两个应用程序的保存文件非常不同.
我想在这些格式之间创建一个转换器.正如@ VS1所建议的Mapper模式看起来很有希望进行此操作,但我认为我不能像AutoMapper那样使用简单直接的东西.适配器模式也可能有所帮助.我会研究这些.
您需要自己构建一种Mapper,将您转换Dataset为objects; 或者您可以使用AutoMapper等可用工具.
这些映射通常需要了解Adapter和Builder设计模式.我会强调更多的torwards Builder模式在构建此映射时更为重要.
您也可以根据此示例使用LINQ和Extension Methods实现您的要求.