策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计原则:多用组合,少用继承。封装变化。针对接口编程,不针对实现编程。
原则和模式可以在软件开发生命的任何阶段应用。
这里把鸭子的飞行的行为想像为“一族算法”。
封装变化:把会变化的部分取出并封装起来,便以后可以轻易地改动或扩充此部分,而不影响不需要变化的部分。
针对接口编程,关键就是在多态。利用多态,程序可以针对超类型编程,执行时会根据实际状况执行到真正的行为。例如:有一个抽象对象Animal,有一个具体的实现Dog,那么:
“针对实现编程”
Dog d = new Dog();
d.bark();
"针对接口编程"
Animal animal = new Dog();
animal.makeSound();
最后欢迎大家访问我的个人网站: 1024s