`
ynp
  • 浏览: 431706 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简单工厂模式

QQ 
阅读更多
/**
*简单工厂模式
*/
/*
interface Car{
	public void run();
	public void stop();
}

class QQ implements Car{
	public void run(){
		System.out.println("-----QQ is running-----");
	}
	
	public void stop(){
		System.out.println("-----QQ is stoping-----");
	}	
}

class Toyota implements Car{
	public void run(){
		System.out.println("-----Toyota is running-----");
	}
	
	public void stop(){
		System.out.println("-----Toyota is stoping-----");
	}	
}

class CarFactory{
	public static Car getCar(String car){
		if ("QQ" == car){
			return new QQ();
		}
		if ("Toyota" == car){
			return new Toyota();
		}
		System.out.println("none of you need,sorry");
		return null;
	} 
}

public class Test{
	public static void main(String args[]){
		Car car = CarFactory.getCar("Toyota");
		car.run();
		car.stop();	
	}
}
*/

//假如 我要加入 一种吉利汽车的话,还得改动CarFactory,所以用以下方式加以解决

/**
*简单工厂模式(应用java反射机制)
*/

interface Car{
	public void run();
	public void stop();
}

//QQ汽车
class QQ implements Car{
	public void run(){
		System.out.println("-----QQ is running-----");
	}
	
	public void stop(){
		System.out.println("-----QQ is stoping-----");
	}	
}

//丰田汽车
class Toyota implements Car{
	public void run(){
		System.out.println("-----Toyota is running-----");
	}
	
	public void stop(){
		System.out.println("-----Toyota is stoping-----");
	}	
}

//吉利车
class Jili implements Car{
	public void run(){
		System.out.println("-----Jili is running-----");
	}
	
	public void stop(){
		System.out.println("-----Jili is stoping-----");
	}	
}

class CarFactory {
	public static Car getCar(String car)throws Exception{
		return (Car)Class.forName(car).newInstance();
	} 
}

public class Test{
	public static void main(String args[]){
		try{
			Car car = CarFactory.getCar("Ji");
			car.run();
			car.stop();			
		}catch(Exception e){
			System.out.println("can't make you car!");
		}
	}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics