服務定位器(Service Locator)
**跟DI容器類似**,引入Service Locator目的也在于解耦。有許多成熟的設計模式也可用于解耦,但在Web應用上, Service Locator絕對占有一席之地。 對于Web開發而言,Service Locator天然地適合使用, 主要就是因為Service Locator模式非常貼合Web這種基于服務和組件的應用的運作特點。 這一模式的優點有:
Service Locator充當了一個運行時的鏈接器的角色,可以在運行時動態地修改一個類所要選用的服務, 而不必對類作任何的修改。
一個類可以在運行時,有針對性地增減、替換所要用到的服務,從而得到一定程度的優化。
實現服務提供方、服務使用方完全的解耦,**便于獨立測試和代碼跨框架復用**。