java设计模式:工厂方法模式

来源:互联网 发布:淘宝怎么买看片的账号 编辑:程序博客网 时间:2024/06/11 04:21

1.简单工厂模式

建立一个工厂类,对实现了同一接口的一些类进行实例的创建。

//1确定我们想要造车public interface CreateCar {      public void createCar();  } 
//2确定我们想要造的汽车品种SUVpublic class SuvCarCreater implements CreateCar {      @Override      public void createCar() {          System.out.println("this is SuvCarCreater !");      }  }
//3确定我们想要造的汽车品种MPVpublic class MpvCarCreater implements CreateCar {    @Override      public void createCar() {          System.out.println("this is MpvCarCreater !");      }  }
//4创建汽车厂,前期可以生产suv和mpvpublic class CarFactory {    public CreateCar create(String type) {          if ("suv".equals(type)) {              return new SuvCarCreater ();          } else if ("mpv".equals(type)) {              return new MpvCarCreater ();          } else {              System.out.println("请输入正确的类型!");              return null;          }      }  }
public class FactoryTest {        //5一个客户需要一批suv的汽车    public static void main(String[] args) {         //6找到了一个汽车工厂        CarFactory factory = new CarFactory();         //7客户告诉老板说我们需要一批suv,你能不能给我们造        CreateCar creater= factory.create("suv");         //8老板说没问题,于是把需要的suv给生产出来了        creater.createCar();      }  }

2.多个工厂方法模式

//9随着订单不断增加,人也越来越多。老板想:人太多,不好管,我要将业务分成多个分厂public class CarFactory {   public CreateCar createSuvCar(){          return new SuvCarCreater ();      }      public CreateCar createMpvCar(){          return new MpvCarCreater ();      }  }
public class FactoryTest {      public static void main(String[] args) {         //10又有客户过来找到老板需要造一批suv         CarFactory  factory = new CarFactory ();         //11老板之间将活分给了suv分厂         CreateCar creater= factory.createSuvCar();         //12suv分厂完成汽车的制造         creater.createCar();        }  }

3.静态工厂模式

//13工厂不断扩大,老板不能所有事儿都亲力亲为,于是将权利下发到各个分厂去public class CarFactory {      public static CreateCar createSuvCar(){          return new SuvCarCreater ();      }      public static CreateCar createMpvCar(){          return new MpvCarCreater ();      }  }
public class FactoryTest {      public static void main(String[] args) {           //13客户又来了,这次又需要一批suv,这次客户直接找到了工厂下面的suv分厂厂长        CreateCar creater= CarFactory.createSuvCar();         //14完成汽车的制造        creater.createCar();       }  }
阅读全文
0 0