java数据源模式将表级方法放在哪里?
在我的公司,我们使用基于“活动记录模式”的模型,模型方法总是与数据库中单个记录的操作相关,例如:
Class User {
int id;
string Name;
public boolean Find (id); // SQL / ORM to return the object based on the user's Id;
public boolean Save (); // SQL / ORM to save / update a user
public boolean Delete (); // SQL / ORM to delete a user.
}
// Create the user "John"
Set objUser = new User ();
objUser.Name = "John";
objUser.Save ();
我的问题是,对于数据库实体“User”,我们有一些方法是表级的,而不是记录级的,比如方法“getAllActiveUsers”,它返回给我一个所有活动用户的查询对象。 这种情况最终会出现在自己的ActiveRecord模型中,在我看来这是没有意义的。。你能帮我了解一下处理这种情况最明智/最优雅的方法是什么吗? 我读了一些关于网关和存储库模式的文章,这些可能对这方面很有用,但我想知道是否有人有同样的问题,以及您是如何解决的
谢谢
# 1 楼答案
我不太喜欢活动记录模式,但我认为使用它的一致方式是将getAllActiveUsers添加到用户类:
另一方面,我建议在以下情况下使用存储库模式: