扩展对象模式和适配器模式有什么区别?

时间:2016-09-05 13:31:44

标签: design-patterns adapter extension-objects

你能解释一下这个Extension Object Pattern以及它与适配器模式的区别吗?

网上似乎只有很少的资源可以解释扩展对象模式,而且大多数资源都有点令人困惑(至少对我而言)。

提前致谢。

2 个答案:

答案 0 :(得分:3)

主要区别在于使用时间:

在开发软件期间,如果无法更改引入适配器的现有接口,则可以使用适配器。

扩展对象模式提供了这样的更改,并使您能够例如扩展已部署的软件。

此外,您发布的文字:

  

适配器支持适应现有接口。扩展对象模式支持   附加接口。扩展对象和适配器可以在某些情况下协同工作   其中一个对象需要适应扩展接口。

答案 1 :(得分:1)

我认为你可以从这个解释扩展对象模式的图表中得到更好的想法。

enter image description here

您可以看到客户端可以

  • 添加扩展程序
  • 获取(使用)现有扩展程序。

比较适配器时,客户端会坚持使用现有的适配器。

您可以在图表中看到不同的adapters作为不同的x1 = [-10:1:10]; x2 = [-10:1:10]; y = zeros(1,21); for i = 1:21 for j=1:21 Y(i,j) = sphere([x1(i) x2(j)]); end end surf(x1,x2,Y); colormap hsv;