java设计思路-项目中两种接口设计方法,请讲出优缺点
结论:通过函数式接口,可以任意组装成不同粒度的接口,使用起来很灵活,强烈推荐。
第一种设计方法:
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;
}
}
本文来自博客园,作者:xiaoyongdata(微信号:xiaoyongdata),转载请注明原文链接:https://www.cnblogs.com/xiaoyongdata/p/16620889.html