设计模式-分离接口(Separated Interface)

在一个包中定义接口,而在另一个包中实现这个接口,两个包是分离的。

背景


为了减少部件之间的耦合程度改进设计质量,可以将类分组并组织成包,并限定包之间的依赖关系。但有时可能需要调用与包之间一般性依赖关系有冲突的方法,此时可以在一个包中定义接口,在另一个包中实现它。


运行机制

  • 核心思想利用了:实现类对接口存在依赖关系,反之不然。其他包可以只依赖于接口包,而与实现包没有依赖关系。
  • 可以采用独立的包将接口与实现链接起来,也可以在软件配置时使用插件模式。
  • 可以将接口直接放在客户所在的包中或者第三方包中。
  • 可以采用独立的工厂对象分离接口。
  • 可以如昂另一个包在应用程序启动时实例化实现类,而这个包与接口和实现都有联系。
  • 对于使用分离接口的对象,即可以在启动时实例化,也可以实例化工厂包。

设计模式-分离接口(Separated Interface)_第1张图片

运行机制

  • 当需要打破系统两部分间的依赖关系时,使用分离接口,例如:
  1. 在一个包中,编写了抽象的方法,而该包需要调用一些特定的应用代码。
  2. 一层中的代码需要调用另一层中的代码,但调用者又不应该知道被调用者的存在,如数据映射器。
  3. 需要调用另一开发小组的函数,但不想和他们的API产生依赖关系。
  • 同一接口有多个独立的实现时,可以采用分离接口。


 

你可能感兴趣的:(设计方法,设计模式,课程设计,设计规范,开发语言,软件需求)