策略的设计模式的关键点
1>:首先分析出我们在设计这个类的时候 "动和变"的东西是什么?
shut这个行为
2>:将我们动的和变的行为抽取成接口
public interface ShutBehavir {
public void shut();
}
3>:编写行为族(因为我们的行为可能有多种) 叫的好听的 叫的不好听的 不能叫的
public class ShutGood implements ShutBehavir{
@Override
public void shut() {
System.out.println("叫的好听。。。。");
}
}
public class ShutBad implements ShutBehavir{
@Override
public void shut() {
System.out.println("叫的不好听。。。。");
}
}
public class NoShut implements ShutBehavir{
@Override
public void shut() {
System.out.println("狗狗不会叫。。。。");
}
}
4>:在我们的实际类中 去提供我们的接口类型的变量
public abstract class Animal {
private String color;
private String name;
private ShutBehavir behavir;
public Animal(String color, String name, ShutBehavir behavir) {
this.color = color;
this.name = name;
this.behavir = behavir;
}
public void shut() {
behavir.shut();
}
}
public class Dog extends Animal{
public Dog(String color, String name, ShutBehavir behavir) {
super(color, name, behavir);
}
}
5>:在我们的类中提供行为方法
@Test
public void test_0001() {
Dog dog1=new Dog("黄色", "小黄",new ShutGood());
Dog dog2=new Dog("绿色", "小绿",new ShutBad());
Dog dog3=new Dog("白色", "小白",new NoShut());
dog1.shut();
dog2.shut();
dog3.shut();
}
通过这个小程序应该能理解策咯的设计模式了