2011-03-28 91 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