服务提供者设计模式

7
我正在寻找关于服务提供者设计模式的解释或参考信息,因为我在研究Grapht @defaultImplementation代码时遇到了它(http://grepcode.com/file/repo1.maven.org/maven2/org.grouplens.grapht/grapht/0.5.0/org/grouplens/grapht/annotation/DefaultImplementation.java)。
这个注解与LensKit实现中的注解一起使用,就像这个视频28:57所示:https://www.youtube.com/watch?v=ug_JfORWK7w 我正在寻找解释或参考资料,以了解这种设计模式的实用性。
请给予建议。
谢谢。
1个回答

15

服务提供者接口:创建可扩展的Java应用程序

一个应用程序是由一组相互关联的服务所组成。虽然应用程序提供了更广泛的功能,包括应用程序编程接口(API)和类,但服务只提供对某个特定应用程序功能或特性的访问。服务定义了功能的接口以及获取实现的方法。例如,考虑一个提供有关地理位置各种信息的应用程序,如房地产数据、天气信息、人口统计数据等。该应用程序的天气服务仅定义了检索天气信息的接口(稍后会对此示例进行说明)。

服务提供者接口(SPI)是服务定义的公共接口和抽象类的集合。SPI可以由单个接口(类型)或抽象类表示,也可以由一组接口或抽象类表示,这些接口或抽象类定义了服务契约。

来源 服务提供者接口:创建可扩展的Java应用程序


我能够浏览这里的一些材料:Martin Fowler - 依赖注入Java 教程 - Rookie
Roman在这篇帖子中的答案也是解释这个模式的好方法。 - Matthias Holdorf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接