一. 感悟
- 简单工厂模式其实就是让产品的创建和使用分离,通过新增工厂类,对外提供静态方法。客户端只需要传入指定的参数,就能获得目标产品。简单工厂模式的缺点也很明显,工厂辨别入参生产指定产品的逻辑全部被写在了工厂类,若产品种类丰富,会导致工厂类过于庞大。此外,每新增一个不同类型的产品,不得不修改工厂类的代码,违背了开闭原则。
- 工厂方法模式和核心在于使用了抽象工厂和抽象产品,具体产品的实现从工厂类(对比简单工厂模式)下放到了具体的工厂类中,使用时通过具体的工厂类初始化抽象工厂,再通过抽象产品调用具体产品的实现方法。
Factory factory = new ConcreteFactory1();
Product product = factory.createProduct();
product.doAnything();