随着所有键值数据存储的出现,我开始创建一个抽象层,这样开发人员就不必绑定到特定的商店。我建议为以下人员制作图书馆:
Erlang
Ruby
Java
.NET
有没有人有关于如何设计此API的任何提示?
由于
答案 0 :(得分:1)
首先,作为随时构建“可插拔”抽象层的一般规则,构建它以支持至少两个真正的实现启动。不要仅为一个数据存储区构建它并尝试将其抽象化,因为您会忽略一些不会很好地插入另一个实现的细节。通过强制它使用两个单独的实现,您将更接近实际上灵活的东西,但您将不得不进行进一步的更改以支持第三和第四个数据存储。
其次,不要打扰,这些东西已经存在。微软已经为他们的技术提供了大量的这些技术(ODBC,ADO,ADO.NET等),我确信Ruby / Java /等也有几个。我理解封装现有技术的愿望,但是您需要支持的数据存储越多,您需要构建的复杂性就越多,您就越接近ADO.NET(或类似技术)。像MS这样的公司花了大量的资金和研究来解决这个问题,这就是他们想出来的。
答案 1 :(得分:1)