策略模式定義了算法族,分別封裝起來,讓它們之間可以相互替換,此設計模式讓算法的變化獨立於使用算法的客戶。
The Strategy Pattern defines a family of algorithms,encapsulates each one, and makes them interchangeable.
Strategy lets the algorithm vary independently from clients that use it.
設計原則一:找出應用中可能需要變換之處,把它獨立出來,不要和那些不需要變換的代碼混在一起。
把會變化的部分取出並封裝起來,以便以後可以輕松的改動或補充此部分,而不影響不需要變化的其他部分。
設計原則二:針對接口編程,而不是針對實現編程。
設計原則三:多用組合,少用繼承。
使用組合建立系統具有很大的彈性,不僅可以將算法族封裝成類,更可以“在運行時動態的改變行為”,只要組合的行為對象符合正確的標准接口即可。