工厂方法模式(Factory Method Pattern)

本文介绍了工厂方法模式的概念及其核心特点,即通过定义一个用于创建对象的接口,将实际的实例化工作延迟到子类中进行。该模式适用于不知道具体创建哪类对象的情况,并允许在不修改现有代码的情况下轻松扩展新的产品类。

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

一、定义

     工厂方法模式又称工厂模式,也叫虚拟构造器模式或者多态工厂模式。

     在工厂方法模式中,父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化哪一个类。

     在工厂方法模式中,工厂方法用来创建客户所需要的产品,同时还向客户隐藏了哪种具体产品类将被实例化这一细节。

     工厂方法模式的核心是一个抽象工厂类,各种具体工厂类通过抽象工厂类将工厂方法继承下来。

 

     ◎基于工厂角色和产品角色的多态性设计是工厂方法模式的关键。它能够使工厂可以自主确定创建何种产品对象,而如何创建这个对象的细节则完全封装在具体工厂内部。工厂方法模式之所以又被称为多态工厂模式,就正是因为所有的具体工厂类都具有同一抽象父类。

     ◎使用工厂方法模式的另一个优点是在系统中加入新产品时,无需修改抽象工厂和抽象产品提供的接口,无需修改客户端,也无需修改其他的具体工厂和具体产品,而只需要添加一个具体工厂和具体产品就可以了,这样,系统的可扩展性非常好。

 

二、应用情景

     1、类不知道自己要创建哪一个对象。

     2、类用它的子类来指定创建哪个对象。

     3、客户需要清楚创建了哪一个对象。

 

三、类图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值