几种工厂模式对比

简单工厂模式:

简单工厂模式:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被成为静态工厂方法模式,它属于类创建类模式。

简单工厂模式的要点在于:当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无须知道其创建细节。

简单工厂模式的缺点是:
1. 工厂类过于庞大,包含了大量的if…else代码,导致为何和测试的难度增大。
2. 系统扩展不灵活,如果增加新类型的产品,必须修改静态工厂方法的业务逻辑,违反了开闭原则。

工厂方法模式:

因为简单工厂模式的缺点,所以引入工厂方法模式来解决这个问题

工厂方法模式:定义一个用于创建对象的接口,让子类决定将哪个类实例化。工厂方法模式让一个类的实例化延迟到其子类。

在工厂方法模式中,不再提供一个统一的工厂类来创建所有的产品对象,而且针对不同的产品提供不同的工厂,系统提供一个与产品等级结构对应的工厂等级结构。

抽象工厂模式:

抽象工厂模式和工厂方法模式最大的区别是,工厂方法针对的是产品等级,而抽象工厂创建的是产品族。

你可能感兴趣的:(设计模式/重构/UML建模)