2011-03-28 89 views
0

当软件具有一组功能,其中一些功能与多个实现一起提供并且软件自动决定使用哪一个功能。例如:这个软件设计行为的名字是什么?

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

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

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

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

它被称为transparent execution?或者context sensitive?我似乎记得用来描述这种行为的术语。

编辑:顺便说一句我也有兴趣听到这个营销术语?像ProgramX支持transparent execution

+1

它被称为“脱离主题”。 :-) – CanSpice 2011-03-28 21:36:04

+2

这不是OT。询问设计模式的名称。 – Aliostad 2011-03-28 21:40:15

+0

它在程序员.stackexchange.com上会更好。 – CanSpice 2011-03-28 21:53:36

回答

3

这是strategy模式。

您将相同的对象传递给算法不同的多个实现。这是一个经典案件的strategy模式。

+0

谢谢你没有听说它。 – 2011-03-28 21:39:49

+0

顺便说一下,我也有兴趣听到这个营销术语?像ProgramX支持“透明执行”。 – 2011-03-28 21:41:05

+0

+1认为它听起来像一个门面,但快速检查GOF书确认该策略更合适。 – amelvin 2011-03-28 21:41:06

0

听起来就像是门面设计模式,从185 GOF的书页:

提供一个统一的接口界面子系统中的一组 。门面 定义了更高层次的接口,使得子系统更易于使用。

+1

策略听起来更合适。 – amelvin 2011-03-28 21:44:51