我发现我最近一直在实现类表面上的Mapping接口(它们本质上只是键值存储,没有更多的元数据),但在它们下面有时相当复杂。是否有理由使用get/put方法而不是项目访问?
下面是日益严重的几个例子:
- 它包装另一个映射转换的所有对象为字符串时设置的对象。
- 一个对象,它使用本地数据库作为后端来存储键值对。
- 向远程服务器发出HTTP请求以获取/设置数据的对象。
让我们假设所有这些例子中无缝地实现映射接口,并且有有鬼的唯一指示事情是访问项目的潜在可能需要几秒钟,一个项目可能无法在同一检索形式存储(如果有的话)。我对第一个例子非常满意,第二个例子很好,但是对于最后一个例子我感到不舒服。
问题是,是否有一行这些模型的API不应该使用项目访问,即使底层结构可能觉得它适合在表面上?
但是如果交易是可选的呢?pybsddb这样做:你可以使用dict风格的访问,但你根本无法访问事务。 – 2010-07-16 11:39:15
我的意思是我不会在我的应用程序实际上想要使用这些事务语义的情况下使用dict适配器。如果你不需要它们,或者其他典型的字典,那么继续,让它看起来像一个字典! – SingleNegationElimination 2010-07-17 01:34:22