背景信息:我正在尝试使用单独的 Controller、Service 和 Dao 层来实现我的服务器。我不确定应该如何组织服务层模块。
例如,让我们考虑一个UserService模块,它是服务层模块中的子模块。但是,我不想创建单个UserService文件,而是将其分成单独的文件,例如,一个FetchUsers类是用户服务的一部分,并且将具有不同的获取用户的方法,filterBySomething(params)其中也包括一些业务逻辑,所以他们需要在服务层。
如果我不将“UserService”划分为单独的模块,那么单个模块中的内容就会过多,并且也会违反 SRP。
问题:我可以想到两种实现此目的的方法,哪种更好?如果有比这两种更好的方法,或者我不应该尝试实现这一点,请提出替代方案。
方法一:
- services
- user
- index.js - directly exports modules inside user service
- FetchUser
- CreateUser
The index.js will do something like this:
FetchUser = require('./FetchUser');
module.exports = {
FetchUser: FetchUser
}
Controller will use it as:
UserService.FetchUser.filterBySomething()
方法二:
- services
- user
- index.js - exports methods of individual modules, not the modules themselves
- FetchUser
- CreateUser
The index.js will do something like this:
FetchUser = require('./FetchUser');
module.exports = {
filterBySomething: FetchUser.filterBySomething
}
Controller will use it as:
UserService.filterBySomething()
方法 1 看起来它没有足够的封装。方法 2 有很好的封装,但它需要我在用户服务中维护 index.js 每当我想从任何文件中添加/删除任何内容时。
梦里花落0921
相关分类