Extract Interface(提炼接口)

若干客户使用类接口中的同一子集,或者两个类的接口有部分相同。
将相同的子类提炼到一个独立接口中。
这里写图片描述

1.动机

  1. 类之间彼此互用的方式有若干种。①.“使用一个类”通常意味用到该类的所有责任区。②.某一组客户只使用类责任区中的一个特定子集。③.这个类需要与所有协助处理某些特定请求的类合作。
  2. 对于后两种情况,将真正用到的这部分责任分离出来通常很有意义,因为这样可以使系统的用法更清晰,同时也更容易看清系统的额责任划分。如果洗呢类需要支持上述子集,也比较能够看清子集内有些什么东西。
  3. 在许多面向对象语言中,这种责任划分是通过多继承来实现。你可以针对每组行为建立有一个类,再将它们组合于同一个实现中。java值提供单继承,但你可以运动接口来昭示实现上需求。
  4. 如果某个类在不同环境下扮演截然不同的而角色,使用接口就是个好主意。
  5. 你想描述一个类的外部依赖接口(即这个类要求服务提供方提供的操作。如果你打算将来加入其它种类的服务对象,只需要求它们实现这个接口即可。)

2.做法

  1. 新建一个空接口。
  2. 在接口中生命待提炼类的共通操作。
  3. 让相关的类实现上述接口。
  4. 调整客户端的类型声明,令其使用该接口。

猜你喜欢

转载自blog.csdn.net/sinat_25682007/article/details/73527070