设计模式(2)

60 阅读1分钟

(接上篇 第一章 设计模式七大原则

第3节 接口隔离原则

1.描述

客户端不应该依赖它不需要的接口。即,一个类对另一个类的依赖应该建立在最小的接口上

2.传统方式

2.1 类图

image.png

2.2 问题分析

  • 类 A 通过接口 Interface1 依赖类 B,但类 A 中只会用到接口的 foo1、foo2、foo3 三个方法,foo4、foo5 方法不会使用。但按照目前的设计方案,类 B 也必须实现 foo4、foo5 方法。同理,类 C 通过接口 Interface1 依赖类 D
  • 接口 Interface1 对于类 A 和类 C 来说都不是最小接口,因为类 B 和类 D 都必须实现它们不需要的方法。因此,违反了接口隔离原则

3.接口隔离

3.1 基本介绍

  • 根据实际情况,将接口 Interface1 拆分为独立的几个接口,类 A 和类 C 分别与它们需要的接口建立依赖关系

3.2 类图

image.png

3.3 代码

public interface Interface1 {
  void foo1();
}

public interface Interface2 {
  void foo2();
  void foo3();
}