工厂模式(四)—工厂方法

2022-08-04  本文已影响0人  奔跑的佩恩

前言

在之前我们已经讲到了工厂模式之简单工厂的使用,大家有兴趣的话,可参考以下文章
工厂模式(一)—工厂模式简介
工厂模式(二)—简单工厂
工厂模式(三)—简单工厂优化(静态调用)
这节我们来讲下工厂方法方法模式
今天涉及内容:

  1. 工厂方法模式的定义
  2. 为什么要使用工厂方法模式
  3. 工厂方法模式的使用

一. 工厂方法模式的定义

这个其实在第一节已经讲过了,其描述如下:
工厂方法模式:定义一个创建对象的接口,由其子类来决定要实例化的类是哪一个,工厂方法模式将实例化延迟到子类中
描述比较生硬,大体意思是,在简单工厂中我们的工厂是直接建对象的,而在工厂方法中,我们是提供一个对象类别的方法,然后让子类去实现。
为什么这样设计呢?下面接着讲。

二. 为什么要使用 工厂方法模式

简单工厂中,我们不难看出,只要我们有新的对像要创建,我们必须去修改对象创建工厂CarFactory的代码,这其实是违背代码设计的开闭原则。什么是开闭原则呢?简单来说就是
写过的代码具有极强的扩展性,后来者只能在我写的代码基础上扩展,而不要修改我的代码
这种设计原则的初衷是避免修改已稳定的代码而带来不稳定性。
简单工厂的设计是违背开闭原则的,所以才产生工厂方法模式来规避这个问题。
工厂方法模式采用的优化方式是将简单工厂的直接创建对象变成提供创建对象的接口,由后来者去确定具体的对象,从而避免修改先行者已写好的代码。

三. 工厂方法模式的使用

与之前一样,场景仍是奥迪车奔驰车取名。
那么第一步要建要做的事的接口,即取名接口:

上一篇 下一篇

猜你喜欢

热点阅读