假设我有两个类Foo和Bar,每个类的DAO都不同。
假设一个foo有多个bars。
那么,返回foo的bars的方法应该放在哪里呢?
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没有任何共同之处的其他类中使用。我现在不能在一个例子中思考。
我想看看专家们的一些意见。
发布于 2015-01-26 01:55:09
有两种方法:
foo有许多bars的事实实际上可以在你的Foo类中建模:foo.get_bars()将返回bars。然后,通过在实例化时获取bars或通过使用lazy-loading.FooDAO将负责确保这一点正常工作。事实上,可以将bar具有相应的foo视为bar的搜索条件。然后,BarDAO将拥有一个find_bars_by_foo_id(foo_id)或find_bars_by_foo(foo)。(这与您的第二种可能性非常相似;关键是以正确的方式思考它。)或者,它可以有一个find_bars(criteria),其中criteria可以有一些设置,比如要使用的foo_id。哪种方法最合适将取决于这两个类的语义以及它们之间的关系。
https://stackoverflow.com/questions/28139464
复制相似问题