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

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

背景


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


运行机制

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

运行机制

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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值