2012-04-19 55 views
2

試圖決定抽象第三方JavaScript API的更好方式,特別是Google Maps API對象。抽象第三方JavaScript API的好方法?

我第一次嘗試這樣的:

nmap.Polygon = function() { 
}; 

nmap.Polygon.prototype = new google.maps.Polygon(); 

這看起來不錯,直到我嘗試行爲與谷歌地圖API的其他部分的對象。例如:

var poly = new nmap.Polygon(options); 
poly.setMap(googleMapObject); 

這會失敗。

我唯一的其他選擇是使用合成模式嗎?
IE:

var Polygon = function(){ 
    this.realPolygon = new google.maps.Polygon(); 
} 
+0

只需2分錢小費,但我喜歡用構圖模式,當我們要限制的接口或以某種方式重新定義它。我們只使用我們的框架代碼的原型,所以我沒有經驗來說明爲什麼它在第三方API上發生故障。 – 2012-04-19 20:51:37

回答

0

如果你想要的是地圖API,你應該檢查出Mapstraction一個共同的抽象。支持Google Maps v3以及其他約15個提供商。

http://mapstraction.com/

+0

看到那裏,但此時不想添加我認爲該項目帶來的概念「重量」。 – 2012-04-23 18:26:31