存储库模式:它仅用于数据库源吗?

时间:2009-11-10 13:59:11

标签: design-patterns

我想知道我是否可以将存储库模式用于数据库层以外的任何其他内容?

我已经将模式用于购物车,我将shopcart商品存储在ShopCartRepository类的数组中。然后我使用ShopCartController类从ShopCartRepository获取数据。

如前所述,ShopCartRepository仅处理数组,因此不处理数据库。

这是使用存储库模式的“合法”方法吗?

2 个答案:

答案 0 :(得分:4)

存储库模式适用于您希望拥有集中位置来控制从集合中创建,检索,修改和删除数据的任何情况,无论是数据库表,内存列表还是随你;这种抽象的力量正是使这种模式有价值的原因。当然,以任何对您的项目有意义的方式使用它都是合法的。

答案 1 :(得分:1)

存储库模式不仅适用于数据库。

但是,它通常用于抽象某种方法来处理来自数据层的域对象。如果您严格使用它来购买ShoppingCart,为什么不将这些方法添加到ShoppingCart中,这样购物车的行为就像购物车一样,而不必担心使用ShoppingCard和ShoppingCartRepository?