设计模式——简单工厂模式
一、概念:定义一个工厂类,并对外暴露一个静态接口。调用者使用该接口并传入一个参数,接口会根据该参数,实例化出一个对应的对象并返回给调用者。因为简单工程类创建对象的方法是静态(static)的,所以又叫做静态工厂方法。
二、一般使用方法:定义一个抽象类以及它的一些抽象方法,并且有多个子类继承这个抽象类并实现这些抽象方法。然后通过调用工厂类暴露的一个接口并传入对应参数,获取对应自己想要生成的对象,执行实现了抽象方法的具体实现。
三:UML示意图
四:简单工厂模式的优缺点:
优点:
- 工厂类中包含有逻辑判断,能够通过传递进来的参数判断需要生成哪一个对象。那么调用者不需要关心对象的生成过程,不需要关心应该生成哪一个对象,只需要把生成对象所需要的参数传递进去就可以获取想要的对象。(封装和解耦)
缺点:
- 因为所以的创建对象逻辑都集中在工厂类中,所以一旦工厂类出错,整个系统都会受影响。
- 由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。
- 由于需要通过逻辑判断创建哪个对象,所以一旦新增新的子类,就需要对工厂类做修改,违背了开闭原则(对扩展开放,对修改关闭)。