关于工厂模式---转发

这里我也不写了,直接转代码

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的方法

第三,实现工厂类,这里就是最重要的了,也就是把原料加工成成品就在这里

传入参数判断是否符合,符合就返回相应的对象,没有就是有异常,返回一句话

最后就是调用了,灵活调用就看需求了。

 

posted @ 2015-03-22 21:02  kevinfuture  阅读(162)  评论(0编辑  收藏  举报