简单工厂模式
简单工厂模式又叫做静态工厂模式,它属于类创建型模式。产品类实例由唯一的工厂生产,实例通常都具有共同父类。
简单工厂优点
- 将对象的创建和使用分离,有利于对功能的复用。
- 利用接口创建产品类,使得程序具有较高的灵活性。
- 抽象产品符合开闭原则——对拓展开放,对修改关闭。
简单工厂缺点
- 太理想化,仅仅用一个工厂是不能生产所有产品的。
- 对程序的拓展不方便,每新增一个类就要对工厂修改一次,而且类太多会使工厂过于复杂。
工厂方法模式
工厂方法模式是一种实现了“工厂”概念的面向对象设计模式。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。
工厂方法模式优点
- 将对象的创建和使用分离,有利于对功能的复用。
- 符合开闭原则——对拓展开放,对修改关闭,使得程序具有较高的灵活性。
- 符合单一职责原则,每个具体工厂类只负责创建对应的产品。
工厂方法模式缺点
- 虽然保证了工厂方法内的对修改关闭,但对于使用工厂方法的类,如果要更换另外一种产品,仍然需要修改实例化的具体工厂类。