服務提供介面(SPI)


Service Provider Interface的編寫
和API有關又有區別
你可以參考一下

http://openide.netbeans.org/tutorial/api-design.html
譯文地址
http://www.diybl.com/course/3_program/java/javaxl/20071018/77730.html


還有Apress的一本書
Practical.API.Design.Confessions.of.a.Java.Framework.Architect
中文譯名: 《API設計實戰》或者《實戰API設計》



這些東西這麼實現有一定道理, 就是實現與API分離。 這個是為了降低APIcode的複雜度。 這些設計一定程度是可是說是代理模式。 實際上, SUN為了降低JAVA APIcode的暴露程度, 避免大量的實現類被程序員被使用, 大量使用了這種設計模式,實際上, 大部分code在com.sun包裡實現了, 這也是不建議直接使用這些的主要原因。 這是做系統API比較好的手段。


spi是具體的廠商實現的,api則是提供給開發者調用的
例如jdbc就有一套spi和api,spi由 資料庫廠商實現,api則給開發人員使用
Comments