【发布时间】:2015-12-14 20:50:40
【问题描述】:
将所有业务逻辑集中在一个地方会带来各种好处。它使您的逻辑清晰且易于调试。但是,我觉得它在某些情况下不能很好地扩展。
例如,
class Book{
String a, b......z;
}
我的图书课有 26 个字段(a 到 z)。对于单独的搜索,有 2^26 种可能的查询方式。
如果我要为此编写一个服务类(存储库):
interface BookRepo{
List<Book> findById(int id);
List<Book> findByA(String a);
List<Book> findTop10ByADescending(String a);
List<Book> findByBAndCAndDAnd....Z(String a, b, c,d, e....z);
....
}
如您所见,这很荒谬,因为搜索变量的组合可能有很多,更不用说可能出现的排序和分页变量了。
如果我的应用程序非常灵活,以至于对于给定的“资源”,用户可以过滤任何字段,按任何内容排序。我不应该完全跳过服务层吗?
我尝试过编写“通用”服务层,这在静态类型语言中并不容易。此外,如果您的服务层现在允许所有内容通过,那么将其放在那里毫无意义。
【问题讨论】:
标签: web-services model-view-controller architecture