首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么返回DAO?

什么返回DAO?
EN

Stack Overflow用户
提问于 2015-01-26 01:46:29
回答 1查看 34关注 0票数 0

假设我有两个类FooBar,每个类的DAO都不同。

假设一个foo有多个bars

那么,返回foobars的方法应该放在哪里呢?

代码语言:javascript
复制
class FooDAO
  def bars_from_foo(foo)
    # return the bars of that foo
  end
end

class BarDAO
  def bars_from_foo(foo)
    # returns the bars of that foo
  end
end

我的疑问是,FooDAO是否只返回foo对象?或者FooDAO只包含foo需要的方法?

在我看来,我选择了第一个:FooDAO只返回foo对象。因为,该方法可以在与其他DAO没有任何共同之处的其他类中使用。我现在不能在一个例子中思考。

我想看看专家们的一些意见。

EN

回答 1

Stack Overflow用户

发布于 2015-01-26 01:55:09

有两种方法:

  • 一个foo有许多bars的事实实际上可以在你的Foo类中建模:foo.get_bars()将返回bars。然后,通过在实例化时获取bars或通过使用lazy-loading.
  • The,FooDAO将负责确保这一点正常工作。事实上,可以将bar具有相应的foo视为bar的搜索条件。然后,BarDAO将拥有一个find_bars_by_foo_id(foo_id)find_bars_by_foo(foo)。(这与您的第二种可能性非常相似;关键是以正确的方式思考它。)或者,它可以有一个find_bars(criteria),其中criteria可以有一些设置,比如要使用的foo_id

哪种方法最合适将取决于这两个类的语义以及它们之间的关系。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28139464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档