这将是我第一次在生产中使用Elastic。
对于数据库,我使用存储库模式,例如IOrderRepository
的具体类,IFacetRepository
使用SQL和Mongo驱动程序与db通信。
该应用程序将要从Elastic获得所有产品,而我使用Elastic REST Api来获取数据。
在代码库中表示 flex 提供程序(?)的最佳实践是什么?
我可以继续使用存储库模式,并创建使用ProductRepository
的ElasticClient
并进行http调用,但是我觉得这不是一个完美的解决方案。
我也无法创建ProductService
,因为我不想在代码中进行任何交易。
唯一的责任就是从 flex 中获得产品,仅此而已。
可能mediator pattern是正确的实现方式。
你有什么建议?
最佳答案
我会使用内部使用ProductRepository
的ElasticClient
:
Repository
是数据库的接口(interface),它的客户端不需要知道其实现是否与Relational DB,MongoDB或Elasticsearch对话。这正是您创建ProductRepository
类所要实现的。 ProductRepository
,而它的客户端将不在乎。 警惕调解人模式,因为随着时间的流逝,您最终可能会遇到上帝的对象。