C# 建议通用服务的体系结构模式
我们正在连接不同的服务来描述一些Tase股票信息。 目前有三种服务。每个服务都以不同的方式返回信息:XML、Json、管道分隔字符串。在不久的将来,服务的数量可能会增加 我想以最灵活的方式实现它,最大限度地抽象。唯一的模式(我所熟悉的模式)是工厂模式或抽象工厂。甚至战略模式也可能是一种选择 也许你可以建议更好的实施方式 总结:C# 建议通用服务的体系结构模式,c#,design-patterns,C#,Design Patterns,我们正在连接不同的服务来描述一些Tase股票信息。 目前有三种服务。每个服务都以不同的方式返回信息:XML、Json、管道分隔字符串。在不久的将来,服务的数量可能会增加 我想以最灵活的方式实现它,最大限度地抽象。唯一的模式(我所熟悉的模式)是工厂模式或抽象工厂。甚至战略模式也可能是一种选择 也许你可以建议更好的实施方式 总结: StockInformationParser ->连接到服务1 | |服务2 | |或服务N ->解析和分析信息 ->返回StockInformationInfo。 关于
StockInformationParser
->连接到服务1 | |服务2 | |或服务N
->解析和分析信息
->返回StockInformationInfo。
关于您的情况,我建议您应用更多的设计模式,并将其结合起来解决您的问题,如下所示:
1.Facade模式:它作为一个接触点类来减少连接多个服务时的复杂性
希望这对您有所帮助。关于您的情况,我建议您应用更多的设计模式,并将其结合起来解决您的问题,如下所示: 1.Facade模式:它作为一个接触点类来减少连接多个服务时的复杂性
希望这能有所帮助。我会有一些不同的方法。如何创建一个数据库并用这些服务填充它,然后您就可以用最常用的SQL轻松地查询数据库,并使用GROUPBY、Order和JOIN 优点是,
- 不需要重新设计查询适配器,毕竟您需要查询李>
- 不需要担心不同的格式,一旦获取的数据保持为行 在数据库中李>
- 改进了在服务失败或连接问题时的缓存,您仍然可以看到过去的数据
- 不需要重新设计查询适配器,毕竟您需要查询李>
- 不需要担心不同的格式,一旦获取的数据保持为行 在数据库中李>
- 改进了在服务失败或连接问题时的缓存,您仍然可以看到过去的数据
- 创建一个内部服务,其中包含可由您的客户端使用的操作,并为这些客户端优化数据契约
- 内部服务使用基础存储库和域模型
- 存储库负责提取数据的检索方式。在内部,他们从外部提供者获取数据,并将这些数据映射到您的域对象。您可以为每个外部服务编写一个提供者,并使用存储库中的服务。如果添加了外部服务,则只需添加新的提供程序并将其添加到存储库逻辑中李>
- 创建一个内部服务,其中包含可由您的客户端使用的操作,并为这些客户端优化数据契约
- 内部服务使用基础存储库和域模型
- 存储库负责提取数据的检索方式。在内部,他们从外部提供者获取数据,并将这些数据映射到您的域对象。您可以为每个外部服务编写一个提供者,并使用存储库中的服务。如果添加了外部服务,则只需添加新的提供程序并将其添加到存储库逻辑中李>
- 我会有一些不同的方法。如何创建一个数据库并用这些服务填充它,然后您就可以用最常用的SQL轻松地查询数据库,并使用GROUPBY、Order和JOIN
优点是,
我个人喜欢IoC,因此我会为每个组件创建接口并注入具体实例;这使得它更加灵活和可测试。我假设所有这些外部服务最终都映射到同一个域模型 在这种情况下,您可以:
我个人喜欢IoC,因此我会为每个组件创建接口并注入具体实例;这使得它更加灵活和可测试。我会选择工厂模式,它接受标准格式,然后是适配器模式来标准化每个不同的服务。我会选择工厂模式,它接受标准格式,然后是适配器模式来标准化每个不同的服务。谢谢您的回复,我会进一步调查。谢谢你的回复,我会进一步调查。最后,结果会保存到数据库。。。但我试图构建的是分析基础设施,我们从一些服务中获取一些信息,然后应用我们自己的分析系统,结果存储到数据库。我说的是在解析后直接从服务中存储信息,但在应用任何分析之前,只存储原始表转储。您的服务返回某种行,对吗?最后,结果将保存到数据库。。。但我试图建立的是分析基础设施,我们是