<分区>
过去 4 个月我一直在开发一个应用程序,它在很大程度上依赖于 iOS 平台上的 Google map 。最近我的一位 friend 提出了一个问题,如果 Apple Inc. 决定使用不同的 map 提供商怎么办?
在互联网上进行了几次搜索后发现,Apple 将用名为 C3 的公司构建的一些新的高级 3D map 来取代 Google map 。 (One of the researched resource)。那么现在我担心我已经写好的代码,
我应该推迟我的开发工作直到这项新技术出现吗?或者等到 Apple 正式宣布。
谢谢
这是编程中常见的困境,也有常见的解决方案。开发您自己的原语——无论您是需要显示叠加层、显示地标、绘制多边形和线条,都可以通过您自己的代码中的 stub 来完成所有事情。如果必须更改底层平台,您可以在一些众所周知的地方更新到新的 API。
非常 严格不要访问不在包装层中的任何地方的底层 API,以后更改为不同的应该是直截了当的。当然,这不是免费的,但只要可以在新层中实现您需要的原语,您只需更改这些原语,就可以让项目的其余部分保持不变。
为避免这种情况而损失几个月的完成项目是不值得的。
编辑:这种方法还有另一个好处 - 如果您最终为不同的 API 编写了多个原始层,您可以让用户在它们之间进行选择:您可能有一个(更昂贵的)更高质量的 map 层,您可以收费,以及一个你不收费的便宜/免费的 - 允许人们免费访问质量较低的版本,并让他们购买升级到更好的 map 。或者……有很多可能性。这与某些应用程序采用的数据持久层模式相同,让人们可以在不同的数据平台上运行相同的应用程序。这种模式有很多例子。