Java设计模式之策略模式Strategy Pattern
这个设计模式就是说 不管以后需求发生了什么变化
设计原则
找出应用中可能需要变化之处,把他们独立出来,不要和不需要变化的代码放在一起
把会变的部分抽取出来并封装,以便以后可以轻易地改动或者扩充此部分,而不影响不需要变化的部分
目的:系统中的某部分改变不会影响其他部分
设计原则
针对接口编程,而不是针对实现编程
设计原则
少用组合,少用继承
Demo
超类
package com.daniel.test;
import com.daniel.InterFace.FlyBehavior;
import com.daniel.InterFace.QuackBehavior;
public abstract class Duck {
FlyBehavior flyBehavior;
QuackBehavior quackBehavior;
public void swim() {
System.out.println("swimming");
}
public void display() {
System.out.println("displaying");
}
public void performQuack() {
quackBehavior.quack();
}
public void performFly() {
flyBehavior.fly();
}
public void SetQuack() {
}
public void SetFly() {
}
}
子类
import com.daniel.InterFace.FlyWithWings;
import com.daniel.InterFace.Quack;
public class DecoyDuck extends Duck {
public DecoyDuck() {
// TODO Auto-generated constructor stub
quackBehavior = new Quack();
flyBehavior= new FlyWithWings();
}
@Override
public void display() {
System.out.println("我是诱饵鸭");
}
}
测试类
package com.daniel.test;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Duck decoy = new DecoyDuck();
decoy.performFly();
decoy.performQuack();
decoy.display();
}
}
最终结果