同一类事务的不同个体处理同一性质不同参数的问题时的优良解决方法,避免每个个体都从头计算。
public abstract class Car { abstract String getInfo(); }
public class BMW extends Car{ //若继承抽象类,须实现抽象类中的抽象方法 @Override String getInfo() { return "BMW"; } }
public class Benz extends Car{ @Override String getInfo() { // TODO Auto-generated method stub return "Benz"; } }
public class CarFactory { //若new 对象可以把方法声明成static的 public static Car getChoice(String string){ if(string.equals("BMW")){ return new BMW(); }else if(string.equals("Benz")){ return new Benz(); }else{ return null; } } }
public class Customer { public static void main(String[] args) { System.out.println("顾客选择了BMW"); Car BMW = CarFactory.getChoice("BMW"); System.out.println("提取汽车:"+BMW.getInfo()); System.out.println("顾客要购买Benz"); Car benz = CarFactory.getChoice("Benz"); System.out.println("提取汽车:"+benz.getInfo()); }