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;
    }
}

 

posted @ 2022-08-24 17:13  xiaoyongdata  阅读(256)  评论(0编辑  收藏  举报