首先,做任何事请之前都要问自己几个问题?
1. 要做什么?
2. 为什么要做?
3. 怎么做?
明白前两个之后,再去具体考虑怎么做。
首先,设计模式是什么?
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误中总结出来的。所以学习设计模式,相当于学习前人总结的经验,少走弯路,让自己的软件开发水平上升到更高层次上。
其次,为什么要学习?
前边提到,设计模式是前人总结的在面向对象的软件开发过程中面对一般问题的解决方案,为了设计出更好的,以及拥有可扩展性,可维护性,易更新的软件系统,通过学习前人的经验,让自己站在模式层面去思考设计OO系统。
最后,怎么做?
学习设计模式最好的方式就是实践。强烈推荐《Head First 设计模式》这本书,以故事的形式通俗易懂的讲解设计模式 ,同时,附有简洁代码实现。并且会告诉你这样设计实现背后的原理原则。
好了,回到策略模式上来
策略模式:
定义:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
策略模式中的几个重要的原则:
1. 将软件设计系统中变化的部分与不变化的部分分离出来,将变化的部分抽离出来封装,这样可以做到在需要改变的时候,对系统的影响降到最小。
2. 面向接口编程,不面向实现编程。
3. 多用组合,少用继承。使用组合建立的系统具有更大的弹性。