软构学习笔记-工厂模式
三个工厂模式方法
Introduction
工厂模式属于设计模式中创造型模式的一种。
它提供了一种创建对象的方式,将创建对象的过程作了优秀的封装。
使得创建对象的创建逻辑不会暴露给客户端,而是通过接口来进行对象的创建。
简单工厂模式
定义:
定义一个工厂类,根据传入的参数不同返回不同类型的实例,被创建的实例具有共同的父类或者接口。
适用场景:
由于简单工厂模式只有一个工厂类,因此工厂中创建的对象不能太多,否则会造成业务逻辑的复杂。
特点:
- 一个工厂
- 对具有共同父类或接口,但实现不尽相同对象进行创建。
- 根据传入的参数指定创建对象的类型。
工厂方法模式
工厂方法模式相当于是对简单工厂的进一步深化。
与简单工厂模式不同的事,在工厂模式方法中,我们为不同的对象提供不同的工厂,而不是使用一个同意的工厂类。即每个对象都有与之对应的工厂。
定义:
定义一个用于创建不同工厂的工厂接口,通过实例化不同的对象工厂,(再通过该对象工厂)创建对应对象。
特点:
- 有一个创建不同对象工厂的工厂接口
- 各对象工厂实现工厂接口方法来创建指定对象
抽象工厂模式
抽象工厂模式进一步深化了工厂方法,在该模式中,工厂类不仅可以创建一个对象,而且能创建一组对象。
定义:
提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。( 在抽象工厂模式中,每一个具体工厂都提供了多个工厂方法用于产生多种不同类型的对象)
特点:
- 工厂不局限于创建一个产品,而是提供一个产品族中的特定产品。
- 工厂接口衍生不同产品族的工厂类