Sriram 谈到了一种不同的方法,它可能会使您对抽象接口的需求无效,这是您应该首先考虑的。我会回答你的直接问题。
您的设计思想似乎合理有效。这在 Javascript 中是非常可能和容易的——比其他语言更容易——但我总是觉得不安全。
Javascript 不是静态类型的。这意味着您可以使用抽象接口,但无需在任何地方声明/定义它。只要具体的实现实现了所有正确的功能,就可以了。
作为一个具体的例子,你可以这样做:
主文件:
var gStorage = null
initStorage();
gStorage.load();
....
gStorage.save();
应用存储实现:
var gAppStorage = {};
gAppStorage.load = function() {
...
}
gAppStorage.save = function() {
...
}
function initStorage() {
gStorage = gAppStorage;
}
对于您想要的任何其他存储提供商来说也是如此。然后,您只需在您的应用程序中包含您想要使用的提供程序的 js,它应该可以正常工作。
Javascript 非常灵活,如何做到这一点有无数种排列方式。这只是你可以走的一种方式。