我们正在连接描述某些Stock Tase信息的不同服务。 目前有三种服务。每个服务以不同的方式返回信息:XML,Json,Pipe分隔的字符串。服务数量可能在不久的将来增长。
我想以最灵活的方式实现这一点,并实现最大程度的抽象。唯一的模式(来自我熟悉的模式)是工厂模式或抽象工厂。也许甚至战略模式也是一种选择。
也许你可以建议更好的实施方式?
要点:
StockInformationParser
-> Connects to Service 1 || Service 2 || or Service N
-> Parses and analyses information
-> returns StockInformationInfo.
答案 0 :(得分:2)
关于您的情况,我建议您应该应用更多的设计模式,它应该结合在一起以解决您的问题,如下所示: 1. Facade模式:它可以作为一个联系点类来降低连接多个服务时的复杂性。
对于每个结果返回每个服务,您可能需要一个具有相同方法的解析引擎,但每个格式Json,Xml,rss,...相同的方法但不同的格式,因此您应该应用策略模式来解决。
每个服务都需要一个方案工厂来连接,所以抽象的工厂或工厂设计模式是合适的。
最后一件事,你会想要结果是抽象易于改变或以后你可以在这里应用代理模式。
希望得到这个帮助。
答案 1 :(得分:2)
我将采用不同的方法。如何创建数据库并使用这些服务填充它,然后您可以轻松地在喜欢的SQL中查询数据库并使用Group By,Order和Joins。
优点是,
答案 2 :(得分:2)
我假设所有这些外部服务最终映射到同一个域模型。
在这种情况下,您可以:
我个人喜欢IoC,因此我会为每个组件创建接口并注入具体实例;这使它更加灵活和可测试。