如何为书店存储库的 query/criteria 搜索建模
How to model a query/criteria search for a bookstore repository
我有一本书 repository/bookstore,客户可以在其中根据作者、ISBN、姓名等搜索图书。随着将来添加更多字段,这可能会导致存储库中出现大量查找方法。为了解决这个问题,我想要一个 find 方法,它接受一个 Query
对象来封装搜索。我还想用 QueryBuilder
class 构造查询。但是,我在实施这些 classes 时遇到了问题。有什么建议么??另外,分页支持应该是存储库或构建查询的客户端的关注点。
我的 BookRepository class 目前看起来像这样:
public interface Bookstore {
Iterable<Book> find(Query query);
Iterable<Book> find(Query query, int start, int len);
void add(Book book);
void remove(Query query);
}
您可以使用 Query Object 模式。它应该支持构建器。
我有一本书 repository/bookstore,客户可以在其中根据作者、ISBN、姓名等搜索图书。随着将来添加更多字段,这可能会导致存储库中出现大量查找方法。为了解决这个问题,我想要一个 find 方法,它接受一个 Query
对象来封装搜索。我还想用 QueryBuilder
class 构造查询。但是,我在实施这些 classes 时遇到了问题。有什么建议么??另外,分页支持应该是存储库或构建查询的客户端的关注点。
我的 BookRepository class 目前看起来像这样:
public interface Bookstore {
Iterable<Book> find(Query query);
Iterable<Book> find(Query query, int start, int len);
void add(Book book);
void remove(Query query);
}
您可以使用 Query Object 模式。它应该支持构建器。