我对OOP持久性分离的看法是正确的吗?

时间:2012-10-03 04:41:28

标签: ruby-on-rails oop

我正在阅读关于OOP并试图将其应用于Rails(受到Bob叔叔的Ruby讨论的启发),我想知道,以下我的方式从“逻辑”模型访问存储库是否正确:

class Product
  ...
  def pick_a_random_product
    repository.pick_a_random_product
  end
  ...
end

这是否符合“逻辑与持久性分离”的条件?在“域”/“逻辑”模型中,是否可以根据需要广泛使用repository

repository是一个真正能从数据库中获取内容的类。

1 个答案:

答案 0 :(得分:0)

它有效,但如果pick_a_random_product用于不同的类意味着

假设您有类xyz

Class Xyz
  ...
  def pick_a_random_product
    Product.pick_a_random_product
    # Xyz.pick_a_random_product you can't use this.
  end
  ...
end

你有类产品

class Product
  ...
  def pick_a_random_product
    Xyz.pick_a_random_product
  end
  ...
end