Java简单工厂模式

简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。

package com.dz.factory;

//定义一个具有通用性的接口
interface Car
{
public void run();
public void stop();
}

class Benz implements Car
{

public void run() {
System.out.println(”Benz运行中”);
}

public void stop() {
System.out.println(”Benz停止中”);
}
}

class Ford implements Car
{

public void run() {
System.out.println(”Ford运行中”);
}

public void stop() {
System.out.println(”Ford停止中”);
}
}

//简单工厂类1
class Factroy1{

public static Car getCarInstance()
{
return new Benz(); //new Ford();

}

}

//简单工厂类2
class Factroy2{

public static Car getCarInstance(String type)
{
Car car=null;
if(”Benz”.equals(type))
{
car=new Benz();
}
if(”Ford”.equals(type))
{
car=new Ford();
}
return car;
}

}

//简单工厂类3
class Factroy3{

public static Car getCarInstance(String type)
{
Car car=null;
try
{
//JAVA反射机制 通过一个字符串可以实例化一个类的对象
car=(Car) Class.forName(”com.dz.factory.”+type).newInstance(); //完整的包名和类名 切记包名全

}catch(Exception e)
{
e.printStackTrace();
}

return car;
}

}

public class FactoryDemo {

public static void main(String [] args)
{

//初如调用
Car car0=new Benz();//Car car=new Ford();
car0.run();car0.stop();
//上面是不管Benz和Ford为父类Car紧密耦合

//简单工厂1调用
Car car1=Factroy1.getCarInstance();
car1.run();car1.stop();

//简单工厂2调用
Car car2=Factroy2.getCarInstance(”Ford”);
if(car2!=null)
{
car2.run();car2.stop();
}else
{
System.out.print(”没有对应的参数”);
}

//简单工厂3调用
Car car3=Factroy3.getCarInstance(”Benz”);
if(car3!=null)
{
car3.run();car3.stop();
}else
{
System.out.print(”没有对应的参数”);
}
}
}

posted @ 2008-12-25 11:26  iAdo  阅读(559)  评论(2编辑  收藏  举报