------------------------------------简单工厂模式----------------------------------
² 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通过它根据自变量的不同返回不同的类的实例。简单工厂模式专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类
² 模式动机: 极品飞车游戏中,能够建立各种车,这些车都源自同一个基类:Car。现在主程序需要根据要求生成不同的汽车对象,但是不同的车在生成过程中工作很复杂,怎
么办?那些复杂的代码写在哪里?
² 优点:工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品。简单工厂模式通过这种做法实现了对责任的分割
² 缺点:系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,有可能造成工厂逻辑过于复杂
import java.io.*;
class MainFrame{
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(
new FileReader("conf.txt"));
String carName=br.readLine();
Car car = CarFactory.getCar(carName); //获得实例对象
car.start();
}
}
/*工厂模式:将生成对象的工作写在工厂类里面,主界面调用工厂*/
class CarFactory{
public static Car getCar(String carName){
if(carName.equals("Benz")){
//检查环境
return new Benz();
}
else if(carName.equals("BMW")){
//检查环境
return new BMW();
}
return null;
}
}
/*极品飞车游戏中,能够建立各种车,这些车都源自同一个基类:Car*/
interface Car{
public void start();
}
class Benz implements Car{
public void start(){
System.out.println("奔驰发动");
}
}
class BMW implements Car{
public void start(){
System.out.println("宝马发动");
}
}
//.....其他车定义