工厂模式
工厂模式分为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() { } }
浙公网安备 33010602011771号