[设计模式]:面向可维护性的设计模式:Factory ,Abstract Factory,Builder

本文深入探讨面向可维护性的设计模式,包括工厂方法、抽象工厂和构造器模式。工厂方法模式适用于客户端不确定创建哪类实例的情况,通过定义创建对象的接口实现类的实例化延迟。抽象工厂模式提供创建一组相关对象的接口,无需指定具体类。构造器模式则用于创建复杂对象,将构建过程分步进行,对客户端隐藏构建细节。

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

[设计模式]:面向可维护性的设计模式:Factory,Abstract Factory,Builder

Factory Method pattern 工厂方法模式

也称为虚拟构造器
当client不知道要创建哪个具体类的实例,或者不想在client代码中指明要具体创建的实例时,用工厂方法。
定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果使用了工厂方法:
在这里插入图片描述
在这里插入图片描述
优点:对扩展的开放,对修改已有代码的封闭

Abstract Factory Pattern

抽象工厂模式:提供接口以创建一组相关/相互依赖的对象,但不需要指明其具体类。
课件例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果分析:创建的不是一个完整产品,而是“产品族”(遵循固定搭配规则的多类产品的实例),得到的结果是:多个不同产品的object,各产品创建过程对client可见,但“搭配”不能改变。

Builder 构造器模式

创建复杂对象,包含多个组成部分。
就比如现在KFC点餐,一个人的餐是由很多东西一起组成的。
在这里插入图片描述
但是,client要的不是一堆零散的objects (abstractfactory那样的结果),而是一个完整的产品,client不关心其中的细节组成部分是什么、如何创建。
使用build模式一步步构建这个复杂的物体:
比如下面的例子,把一个pizza分成三个部分,分别设置。
在这里插入图片描述
在每个具体的实现类中,这三个方法各不相同:
在这里插入图片描述
最后使用时,只需设置好pizza的种类,调用一个constructPizza()方法,Bingo! 构建细节完全对client隐藏。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值