这里我也不写了,直接转代码
package org.jzkangta.factorydemo03;
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Í£³µÁË¡£¡£¡£¡£");
}
}
class Toyota implements Car
{
public void run()
{
System.out.println("Toyota¿ªÊ¼Æô¶¯ÁË¡£¡£¡£");
}
public void stop()
{
System.out.println("ToyotaÍ£³µÁË¡£¡£¡£¡£");
}
}
class Factory
{
public static Car getCarInstance(String type)
{
Car c=null;
try
{
c=(Car)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return c;
}
}
public class FactoryDemo03
{
public static void main(String[] args)
{
Car c=Factory.getCarInstance("Toyota");
if(c!=null)
{
c.run();
c.stop();
}else
{
System.out.println("Ôì²»ÁËÕâÖÖÆû³µ¡£¡£¡£");
}
}
}
好,这里我就只做解释
我们先了解什么是工厂
我的理解,所谓工厂就是原料送进工厂,然后工厂加工,最后送出产品。
这样我们就可以理解了,也就是说,我们把工厂的加工封装成方法就可以了。
看上边的代码,我们能看到
首先是有一个interface(Car)作为resource,
其次我们可以在下边对interface进行impelments实现每个type的Car的方法
第三,实现工厂类,这里就是最重要的了,也就是把原料加工成成品就在这里
传入参数判断是否符合,符合就返回相应的对象,没有就是有异常,返回一句话
最后就是调用了,灵活调用就看需求了。