工厂模式属于创建型设计模式,对使用者和产品进行解耦,利于使用者和产品独立的变化。
一、简单工厂模式
将产品的创建放在工厂方法中,这种方法的缺点是在产品种类增加时,需要修改工厂方法,违背了对修改关闭、对扩展开放的原则;
二、工厂模式
为了解决简单工厂模式存在的问题,提出了工厂模式,即对一个产品分配一个工厂,当产品增加时,同时增加对应的工厂,这样不会修改原来的工厂方法,但是引入的问题是每次增加一个产品,就要增加一个产品类。
三、抽象工厂模式
由于工厂模式中一个工厂只能生产一种产品,在产品量增多时,工厂类也会持续增加,导致代码量大幅度增加,因此提出抽象工厂模式,让一个工厂能生产同一个风格的不同等级的产品,抽象工厂提供不同等级产品的创建接口,由不同风格的子类实现不同风格产品的创建,这样的设计模式,对于同一个风格中不同系列产品创建中,如果新增产品,只需要增加子类接口,如果增加风格,就要增加抽象工厂子类,此种模式的缺点是产品的增加,会导致所有产品子类的接口新增。
参考: