为Java EE中的每个服务提供接口是一种好的(也是常见的)做法吗?除了具有指定服务必须实现哪些方法的接口之外,还有哪些其他好处?
一个例子:
public interface UserService {
public User findUser(String username, String password);
}
@Stateless
public class UserServiceImpl implements UserService {
public User findUser(String username, String password) {
// some code
}
}
答案 0 :(得分:0)
除非您打算以某种客户端lib或API的形式共享接口,否则请不要使用它们。在单个模块中使用它们毫无意义。最新的Java EE版本强调简单,无样板代码 - 代码越少越好。值得注意的例外是CDI替代品,但这是一个特殊的用例,与接口impl的旧java ee'模式非常不同。 如果您有基于Java的客户端,我认为唯一的例外是JAXRS端点定义。然后将Rest接口和DTO放入API模块并在客户端和后端服务提供者之间共享(想想微服务通信或前端后端)是很有用的。但是如果你的客户端不是java,就不要理会它,只是注释bean本身。