strategy-pattern

    1熱度

    1回答

    爲什麼在我看來,使用Strategy只是推遲了工廠的if/else? 使用策略,工廠不需要找出實例化哪個具體類,而不是通過if/else來實現嗎? 是另一種選擇,以某種方式使用Map/List,並將鍵作爲要實例化的類的名稱,也許該類使用名稱中的Factory pass?

    9熱度

    2回答

    如何獲得microsoft unity以構建給定接口類型的類列表。 很簡單的例子: List<IShippingCalculation> list = new List<IShippingCalculation>(); list.Add(new NewYorkShippingCalculation()); list.Add(new FloridaShippingCalculat

    43熱度

    5回答

    我一直在做一些閱讀戰略模式,並有一個問題。我已經在下面實現了一個非常基本的控制檯應用程序來解釋我在問什麼。 我已經讀過,在執行策略模式時,'switch'語句是紅旗。不過,在這個例子中,我似乎無法擺脫switch語句。我錯過了什麼嗎?我能夠從鉛筆刪除邏輯,但我的主現在有一個switch語句。我明白我可以輕鬆創建一個新的TriangleDrawer類,而不必打開鉛筆類,這很好。但是,我需要打開Mai

    1熱度

    3回答

    我有一個基類: class Message 和兩個派生類: class SimpleMessage : Message class ComplexMesssage : Message 這些類型中的代碼的另一部分被用作這樣的: void ProcessSimpleMessage(SimpleMessage m) void ProcessComplexMessage(ComplexMess

    1熱度

    4回答

    我正在修改Google Android博客中的Image Downloader。我想ImageDownloader是單身人士,因爲我將在我的應用程序的多個地方使用它。我還希望能夠使用不同的Strategies(例如,生成透明位圖)來操縱Bitmaps。 語境: 我希望能夠在一個活動使用ImageDownloader並設置透明位圖,並在另一個使用相同ImageDownloader但使用不同的策略對象

    112熱度

    7回答

    這兩種設計模式都封裝了算法,並將實現細節與其調用類分離。唯一的區別是我可以看出,戰略模式需要執行的參數,而命令模式則沒有。 在我看來,命令模式要求創建時所有的執行信息都可用,並且它能夠延遲其調用(可能作爲腳本的一部分)。 什麼決定指導是否使用一種模式或其他?

    0熱度

    2回答

    我正在創建一個應用程序,它使用DI容器將注入策略加入其中。 部署時,如果我需要這些策略進行更改,是否採用新策略部署新程序集是一種有效的部署策略,並且需要修改配置文件以指示DI容器使用哪種策略? 我擔心的是應用程序在機器上的版本控制會變得有點模糊,因爲不同的dll會有不同的版本號。

    5熱度

    3回答

    我需要創建一個策略模式,其中用戶從二十或三十個唯一策略對象列表中選擇四個策略。隨着項目的成熟,策略列表將會擴展,用戶可以隨時更改其選擇的策略。 我打算將他們選擇的策略名稱存儲爲字符串,然後使用像這樣的方法來加載與他們選擇的字符串相對應的策略類。 class StrategyManager { // simplified for the example public $selectedSt

    4熱度

    1回答

    我理解「策略模式」的概念,但我仍然有點困惑。我們有一個類Dog。 Dog具有MovementBehaviour(接口),其可以是MovementBehaviourNormal和MovementBehaviourFast。 MovementBehaviourNormal和MovementBehaviourFast都包含名爲move的方法。 問題:訪問move方法的狗屬性的最佳方法是什麼? 將dog對

    11熱度

    5回答

    我已經越來越熟悉工廠模式(與戰略模式一起)以及模式可以帶來的好處。但是,我一直在努力處理以下情況: 以前,我會做類似以下的事情,那裏有一個可以構建和保存Car的管理器類。在這裏沒有依賴注入,並且是一個糟糕的實現,特別是在嘗試單元測試時。 public class CarManager { public static Car GetCarFromDatabase(int carId) {