今天主要总结一下工厂三兄弟即:简单工厂模式、工厂方法模式、抽象工厂模式,看的多了之后有点乱,所以需要及时总结。
简单工厂模式
简单工厂:定义一个用于生产对象的类,封装生产不同的产品实例的细节,使创建对象的逻辑和客户端分离,客户端只需向这个类发起请求即可获得对应的产品实例,而无需关心对象的创建过程。
简单工厂模式主要由三个角色构成:工厂类、抽象产品类、具体产品类
优点:封装对象的创建过程,使创建对象的逻辑和客户端分离
缺点:不符合开放-封闭原则
简单工厂模式——UML类图
工厂方法模式
工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
工厂方法模式主要由四个角色构成:抽象工厂类、具体工厂类、抽象产品类、具体产品类
优点:单一职责原则,每一个具体的工厂类只负责一种具体的产品
缺点:添加新的产品类时,还要添加对应的工厂类。
工厂方法模式——UML类图
抽象工厂模式
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
抽象工厂模式主要由四个角色构成:抽象工厂类、具体工厂类、抽象产品类、具体产品类
优点:易于在不同的产品簇之间切换,要想切换不同的产品簇,只需要切换具体工厂
缺点:扩充产品的繁琐
抽象工厂模式——UML类图