2012-04-19 60 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