设计模式-工厂设计模式(3种)

本文通过披萨制作场景,详细解析了简单工厂、工厂方法及抽象工厂三种设计模式的应用场景与优势,帮助读者理解如何通过工厂模式解决代码耦合问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于代码篇幅太长,所以改用UML图来讲解工厂设计模式

简单工厂设计模式

在这里插入图片描述
拿传统模式来说,假如用户需要某一种披萨时,那么就需要创建一个对应种类的披萨,假如,某一天其中一种披萨改了实现方法,那么紧跟着,所有用户都要去修改代码。那么,很不利于维护。所以。。。

拿着个结构讲解一下,简单工厂模式就是抽取一个类,SimpleFactory类,然后在这个类中实例化要创建的对象,每次只需要调用这个类中的某个创建方法,就可以得到一个对象,这样就可以实现代码分离。
这样 user1,user2都只调用了SimpleFactory,实例化在SimpleFactory里面,当某一种修改实现时,只需去SimpleFactory修改就行,user1,user2都不需要改。

工厂方法设计模式

在这里插入图片描述
当上边需求修改后,披萨分为北京的跟伦敦的,而且口味还不一样的时候,简单工厂就不在实用了,此时就需要更改。
将创建披萨抽取出来,实现交给子类,那么当我们使用的时候,只需要创建子类就可以创建不同口味的披萨了(上边是将北京跟伦敦地区分成两种子类,并在内部根据不同类型创建不同口味),即便当不同口味发生变化后,休要改动的也仅仅是子类。

抽象工厂设计模式

在这里插入图片描述
抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。 从设计层面看,抽象工厂模式就是对简单工厂模式的改进(或者称为进一步的抽象)。 将工厂抽象成两层,AbsFactory(抽象工厂) 和 具体实现的工厂子类。程序员可以 根据创建对象类型使用对应的工厂子类。这样将单个的简单工厂类变成了工厂簇, 更利于代码的维护和扩展。

解释可能不清晰,但是类图很清晰。工厂模式就这3种,没有哪个是好还是坏,具体看需求。

例如:JDK 中的Calendar类中,就使用了简单工厂模式 ,如下图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值