策略模式是一种扩展类方法实现细节的模式,能够帮助我们以相同的方法名来扩展类的实现细节,比如用类A B C ......来表示NBA球员,通过统一的方法get()来获取球员的绝技,那么可以让球员类extends抽象类,实现抽象类get,并在get类中定义相关的类对象,以及该类存在的方法。这样,我们就可以实现对NBA类似詹姆斯、科比、杜兰特...球星的极为详细描述,而对于无名的NBA角色球员进行有限的描述。这样可以节省很多资源。
不仅如此,策略模式的最大特征是客户端不需要修改太多,如果我们需要添加一些功能,我们只需在子类中实现。所以在编程中要尽可能将公共的、类似的实现业务抽象出来。
public abstract class abstractClass {
public abstract void pring();
}
类A
public class A extends abstractClass{
@Override
public void pring() {
System.out.println("A");
}
}
B
public class B extends abstractClass{
@Override
public void pring() {
// TODO Auto-generated method stub
System.out.println("B");
}
}
C
public class C extends abstractClass{
@Override
public void pring() {
// TODO Auto-generated method stub
System.out.println("C");
}
}
import java.util.Scanner;
public class Test {
private abstractClass test;
public void select(int a) {
switch (a) {
case 1:
test = new A();
test.pring();
break;
case 2:
test = new B();
test.pring();
break;
case 3:
test = new C();
test.pring();
break;
default:
System.out.println("输入错误...");
break;
}
}
public static void main(String []args){
Scanner scan=new Scanner(System.in);
System.out.println("请输入...(1-3)");
int a=scan.nextInt();
new Test().select(a);
}
}