策论模式
下面是简单的策论模式exp
//此包为策略模式简单实验
/* 设计原则
* 1) 将程序中不变的功能写在基类中,供子类继承使用,将个性的,多变的功能抽象为接口,面向接口编程而不是
* 面向实现编程
*/
public class Dark {
Fly fly;
Sing sing;
void setsing(Sing sing){
this.sing = sing;
}
void showsing(){
sing.sing();
}
void setfly(Fly fly){
this.fly = fly ;
}
void showfly(){
fly.fly();
}
public void display(){
System.out.println("Dark display");
}
}
public class SmallDark extends Dark {
}
public class BigDark extends Dark {
}
public interface Fly {
void fly( );
}
public class BigFly implements Fly{
public void fly( ) {
System.out.println("BigFly");
}
}
public class SmallFly implements Fly{
@Override
public void fly( ) {
// TODO Auto-generated method stub
System.out.println("SmallFly");
}
}
public interface Sing {
void sing();
}
public class guagua_sing implements Sing {
public void sing() {
System.out.println("gigigi......");
}
}
public class gaga_sing implements Sing {
public void sing() {
System.out.println("gagaga......");
}
}
public class Test{
public static void main(String args[]){
Dark d1 = new SmallDark();
d1.setfly(new BigFly());
d1.showfly();
d1 = new BigDark();
d1.setfly(new SmallFly());
d1.showfly();
d1.setsing(new guagua_sing());
d1.showsing();
d1.setsing(new gaga_sing());
d1.showsing();
}
}