策略模式
策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,次模式算法的变独立于使用算法的客户。
个人理解:
策略模式,对于不同的角色,分配不同的实现的模式。
具体情况:系统中有很多角色,每个角色都需要完成相同的动作如(击打),但是具体的实现不同(挥剑,射击等),同时在运行的时候可以动态的切换。
通过策略模式,在系统改变时代码不需要太多改动的情况下完成改动。
设计原则1:
找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。把会变化的部分的代码取出并封装起来,以便以后可以轻易的改动或扩充此部分,而不影响不需要改变的其他部分。
设计原则2:
针对接口编程,而不是针对实现编程。
设计原则3:
多用组合,少用继承。使用组合建立系统具有很大的弹性,不仅可将算法族封装成类,更可以“在运行时动态的改变行为”,只要组合的行为对象符合接口标准即可。