简单工厂模式
严格来讲简单工厂模式不是一种设计模式。
public IProduct producing(String type) { switch(type) { case "A1" : return new ProductA1(); case "A2" : return new ProductA2(); default: return null; } }
工厂方法模式
定义一个用于创建对象的接口,让子类决定实现哪一个类。工厂方法使一个类的实例化延迟到其子类。
public interface IFactory { IProduct producing(String type); }
public class FactoryA implements IFactory { @Override public IProduct producing(String type) { switch(type) { case "A1" : return new ProductA1(); case "A2" : return new ProductA2(); default: return null; } } }
抽象工厂模式
提供一个创建一系列相关或者相互依赖对象的接口,而无需指定他们的具体实现。当产品只有一个的时候抽象工厂就退化成了工厂方法模式;当工厂方法模式的产品有多个的时候其就进化成了抽象工厂模式。
public interface IFactory { IProduct producingA(String type); IProduct producingB(String type); }