结论:通过函数式接口,可以任意组装成不同粒度的接口,使用起来很灵活,强烈推荐。
第一种设计方法:
package com.iit.service.user; import com.iit.domain.User; //这是第1种设计方法,按模块或对象划分,将相关功能(方法)设计到一个类中。 public interface IUserService01 { boolean doReg(User user); boolean doLogin(String name,String password); User queryById(User user); } class UserService01Impl implements IUserService01{ @Override public boolean doReg(User user) { return false; } @Override public boolean doLogin(String name, String password) { return false; } @Override public User queryById(User user) { return null; } }
第二种设计方法:
package com.iit.service.user; import com.iit.domain.User; //思维导图:你在项目中是如何设计接口的?(有2种方式) //面试:你是如何理解组合大于继承的? //面试:你是如何理解约定大配置的? //这是第2种设计方法-将函数式接口,通过继承,拼接成一个大的接口。 public interface IUserService02 extends IDoLoginService, //函数式接口1:用户登录 IDoRegService, //函数式接口2:用户注册 IQueryService //函数式接口3:用户查询 { } interface IUserService03 extends IDoLoginService, //函数式接口1:用户登录 IQueryService //函数式接口3:用户查询 { } //模拟一个实现类,需求固定,就是要实现上面3个函数式接口的功能。 class UserService02Impl implements IUserService02{ @Override public boolean doLogin(String name, String password) { return false; } @Override public String doReg(User user) { return null; } @Override public User queryById(User user) { return null; } }
标签:java,String,优缺点,接口,User,Override,设计,public,user From: https://www.cnblogs.com/xiaoyongdata/p/16620889.html