工厂模式是专门负责实例化有大量公共接口的类。工厂模式可以动态块决定将哪一个类实例化,而不必事先知道每次要实例化哪一个类。客户类和工厂类是分开的。消费者无论什么时候需要某种产品,需要做的只是向工厂类提出请求即可。消费者无需修改就可以容纳新产品。
代码示例
package com.java.ch082;
interface Car{
public void driver();
}
class Benz implements Car{
public void driver(){
System.out.println("今天咱开奔驰")
}
}
class Bike implements Car{
public void driver(){
System.out.println("唉,现在经济危机,只能骑自行车了")
}
}
class Bmw implements Car{
public void driver(){
System.out.println("今天开宝马吧")
}
}
class Driver{
public static Car driverCar(String s) throws Exception{
if(s.equalsIgnoreCase("Benz")){
return new Benz();
}
else if(s.equalsIgnoreCase("Bmw")){
return new Bmw();
}
else if(s.equalsIgnoreCase("Bike")){
return new Bike();
}
}
}
public class TextSimpleFactory{
public static void main(String[] args){
try{
Car car=Driver.driverCar("Bike");
System.out.println("经理,今天开什么车呀")
car.driver();
}catch(Exception e){
System.out.println("开车出现问题");
}finally{
System.out.println(".......");
}
}
}
补充说明
这里建立了汽车工厂类,对于客户类,需要某种产品,是直接向工厂类发出请求就可以得到。