2010-09-22 31 views
1

爲什麼在我看來,使用Strategy只是推遲了工廠的if/else? 使用策略,工廠不需要找出實例化哪個具體類,而不是通過if/else來實現嗎?策略模式替換if/else或case語句

是另一種選擇,以某種方式使用Map/List,並將鍵作爲要實例化的類的名稱,也許該類使用名稱中的Factory pass?

回答

1

Map \ List是工廠模式的實現。

使用策略模式比if \ else更好,因爲它創建了les耦合代碼。 使用Factory + Startegy,您可以擴展處理算法而無需觸摸客戶端代碼,並且可以使用更多方式來配置代碼dynamicaly(withot recompile)。