工厂模式

工厂模式分为3种:

  1.简单工厂模式

  2.工厂方法模式

  3.抽象工厂模式

 

1.简单工厂模式

汽车厂生产汽车零件:

  1.汽车零件接口(CarPart)

  2.轮胎、车门、车玻璃等都实现上边的接口

  3.工厂有一个静态方法factory,根据传入的参数,生成相应的汽车零件

public class CarFactory{
  public static CarPart factory(String type){
        if("轮胎".equals(type)){
               return new 轮胎();
         }
        。。。。
    }  
}

2.工厂方法模式

 与简单工厂模式的区别:工厂为接口,对应的实现类去创建对应的方法

  1.汽车零件接口(CarPart)

  2.轮胎、车门、车玻璃等都实现上边的接口

  3.创建一个接口,Factory,轮胎工厂、车门工厂、玻璃工厂等都实现Factory,由具体的工厂实现类来创建实例

3.抽象工厂模式

 与工厂方法模式的区别:不同的汽车,有不同的轮胎、车门等,针对不同的汽车有不同的轮胎工厂、车门工厂、玻璃工厂实现

  1.汽车零件接口(CarPart)

  2.car1轮胎、car2轮胎、car1车门、car2车门、car1车玻璃、car1车玻璃等都实现上边的接口

  3.创建一个接口,Factory,有多个方法create轮胎、create车门、create车玻璃等

  car1工厂、car2工厂等都实现Factory,car1调用create轮胎的时候生成car1轮胎等

  

public interface Creator{
public ProductA factoryA();
public ProductB factoryB();
}
具体工厂

类别一:
public class ConcreteCreator1 implements Creator{
public ProductA factoryA(){
return new ProductA1();
}
public ProductB factoryB(){
return new ProductB1();
}
}
类别二:
public class ConcreteCreator2 implements Creator{
public ProductA factoryA(){
return new ProductA2();
}
public ProductB factoryB(){
return new ProductB2();
}
}
一般而言,有多少个产品等级结构,就会在工厂角色中发现多少个工厂方法。每一个产品等级结构中有多少个具体的产品,就有多少个产品族,也就会在工厂等级结构中发现多少个具体工厂。
抽象产品

类别A
public interface ProductA
{
}
类别B
public interface ProductB
{
}
具体产品类

ProdcutA1:
public class ProductA1 implements ProductA
{
public ProductA1()
{
}
}
ProdcutA2:
public class ProductA2 implements ProductA
{
public ProductA2()
{
}
}:
ProdcutA1:
public class ProductB1 implements ProductB
{
public ProductB1()
{
}
}
public class ProductB2 implements ProductB
{
public ProductB2()
{
}
}

 

posted @ 2016-02-25 14:51  刘尊礼  阅读(104)  评论(0)    收藏  举报