乐趣区

关于java:深入浅出设计模式接口隔离原则

1. 接口隔离准则介绍

2. 用代码演示接口隔离准则

3. 总结

1. 接口隔离准则介绍
定义:客户端不应该依赖它不须要的接口,即一个类对应另一个类的依赖应建设在最小的接口之上。

问题形容:假如咱们有一个用户 UserService, 外面除了可能查问 User 信息等基本操作,还能统计 User 散布地,User 登录习惯,User 性别占比状况,User 生产习惯等数据,如果将这些所有性能全都放在 UserService 里,显然不合理,

解决办法:正确的做法是讲他们隔离开,UserService 该当拆分成两个,UserInfoService 和 UserCalculateService(用户统计 service)两个类,因为查问用户信息的 controller 依赖 UserService 的时候,只依赖了查问用户信息的那几个办法,查问统计报表信息的时候,只依赖了 UserCalculateService 的那几个办法。

2. 用代码演示接口隔离准则

假如咱们有一个 UserService:

public interface UserService {

    // 获取用户姓名信息
    public String getUserName(String userId);
    // 获取用户年龄信息
    public Integer getUserAge(String userId);
    // 获取用户所有信息
    public String getUserMsg(String userId);

    // 统计用户年龄散布状况
    public String calculateUserAgeDistribution(String userId);
    // 统计用户生产状况
    public String calculateUserConsumerDistribution(String userId);

}

能够看出,接口过于臃肿,依赖这个接口的实现类,不论对于依赖它的类有没有用途,实现类中都必须要实现这些办法。

如果依据接口隔离准则的设计办法,咱们队接口进行拆分,拆为两个接口,如下图所示:

3. 总结

可能会有很多人感觉接口隔离就是之前的繁多职责,其实有以下的区别:
1)繁多职责的侧重点是性能的单一性,而接口隔离侧重于对接口依赖性的隔离。
2)繁多职责准则次要的对象是类和办法,而接口隔离的次要对象是接口,是形象层面的货色。

采纳接口隔离准则的注意事项:

1)接口在肯定水平范畴内尽量要小,然而如果过小会障碍编码,要走中庸之道。

2)类的接口肯定要只为一个模块提供服务,尽量少裸露最接口。

3)设计的时候多思考,一直实际,能力体会这一准则。

退出移动版