工厂模式详解

1、概述

工厂模式属于创建型模式,包括简单工厂模式(不属于设计模式)、工厂方法模式、抽象工厂模式。工厂模式的主要作用是实现产品使用者与产品创建者之间的解耦,适用于产品对象的创建经常变动的场景。

2、各个模式详述

 

2.1 简单工厂

简单工厂不属于23种设计模式中的一种,仅是一种编程习惯,它将对象创建部分的代码进行了封装,将可能发生变化的部分进行了隔离,当需要新增对象事,仅需改变对象创建部分的代码,使用对象部分不受影响。将创建对象的代码集中在一个对象中,可以避免代码的重复,并且更方便后期的维护。这种方法由于其代码量少,实现简单,对于对象创建改变不大的场景应用十分广泛,但由于其新增类型时需修改代码,不适合对象创建变动较频繁的场景。

2.2 工厂方法

工厂方法就是父类定义对象创建函数(C++中的虚函数),由子类来实例化该函数,完成对象的创建(子类继承父类,并重写父类的虚函数)。工厂方法将对象的创建从使用中解耦,增加对象或改变已有对象的实现,不会影响使用者功能。

2.3 抽象工厂

抽象工厂允许客户使用抽象的接口来创建一组相关的对象(对象组合),而不需要知道实际创建的具体对象是什么,将客户从所使用的实际对象创建中解耦。适用于创建一组相关对象的场景,比如种花,都需要种子、肥料、花盆,但是不同类型的花,种子、肥料、花盆是有差别的,此时可以用一个抽象接口来创建一个种花所需材料的对象组合,子类继承该接口,创建特定类型花种植所需材料组合。抽象工厂模式比工厂方法模式多了一层抽象,可以看做是将多个工厂方法按每种关系进行组合,减少了工厂的数量。不足之处在于,如果对象组合变化,需要修改代码。

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶陶小哈尼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值