这个软件设计行为的名称是什么?

时间:2011-03-28 21:33:28

标签: performance software-design

当软件具有一组功能时,其中某些功能由多个实现提供,并且软件自动决定使用哪个功能。例如:

具有图像效果的图像编辑器及其一些效果(如Blur,Median等)提供CPU和GPU实现,但不作为选项直接暴露给用户,而是软件根据用户决定使用哪一个硬件

或者在另一种情况下,软件会根据要对要排序的项目的数据选择使用哪种排序算法。

我想这只发生在与性能相关的功能上。

但是当软件具有此工作流程时,这个功能/想法的名称是什么?

它被称为transparent execution吗?还是context sensitive?我似乎回想起用来描述这种行为的术语。

编辑:顺便说一下,我也有兴趣听听这个的营销术语?与ProgramX支持transparent execution一样。

2 个答案:

答案 0 :(得分:3)

这是strategy模式。

将同一对象传递给多个实现,其中差异在于算法。这是 strategy模式的经典案例。

答案 1 :(得分:0)

听起来像GOF书籍第185页的外观设计模式:

  

为集合提供统一的接口   子系统中的接口。正面   定义了更高级别的接口   使子系统更易于使用。