设计模式__工厂模式

来源:互联网 发布:扎克拉文体测数据 编辑:程序博客网 时间:2024/06/06 19:51

简单工厂模式

 简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern,是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

 

简单工厂模式的核心思想就是:有一个专门的类来负责创建实例的过程。

 

好处:创建对象由工厂类去创建,当我们要加入对象时,采用这种方法很方便,而不用去改太多代码。

 

工厂模式的UML

 

 

下面还是看实例吧!

食品店,客人在食品店拿着菜单可以点不同的菜。

这里 菜单就相当于一个工厂类,去产生客人所点的食品

这里抽象类就是指食品,食品就包含了所有的食品

具体实现类就是去完成抽象类,具体产生食品的做法。

  package factory;    //抽象类A 所有食品的超类,具体食品类须要实现这个类的方法  interface Food {  void method();//制作某个食品的方法  }    //具体实现类A  class Bread implements Food  {  //产生一个面包  public void method()  {  System.out.println("你点了一个面包");  }  }  //具体实现类B  class Chicken implements Food  {  //产生一个鸡翅  public void method()  {  System.out.println("你点了一对鸡翅");  }  }  //具体实现类C  class Cola implements Food  {  //产生一个可乐  public void method()  {  System.out.println("你点了一份可乐");  }  }  /*   * 如果我们想加入其它的食品,   * 在这里直接编写一个类,去实现Food即可,大大减少了代码的修改   * class ...   */    //工厂类,用于产生对象  class Factory  {  // 因为产生其子类,所以返回其超类。  static Food getFood(int n)    {  if(n==1)  return new Bread();  // 通过反射 Bread.class.newInstance();这个得解决异常  else if(n==2)  return new Chicken();  else if(n==3)  return new Cola();  return null;  }  }    //客户端  class SimpleFactoryText  {  public static void main(String [] args) throws Exception  {  //通过工厂类建立对象  Food f = Factory.class.newInstance().getFood(1);  //  Food f = Factory.getFood(1);  f.method();    Food f2 = Factory.class.newInstance().getFood(2);  f2.method();    Food f3 = Factory.class.newInstance().getFood(3);  f3.method();    }  }


0 0
原创粉丝点击