设计模式——工厂方法模式

本文深入探讨了工厂方法模式,分析了简单工厂模式的不足,详细介绍了工厂方法模式的结构,包括抽象产品、具体产品、抽象工厂和具体工厂的角色。通过海尔和美的空调生产的例子,展示了工厂方法模式的实例和类图,强调了模式的优点,如封装产品创建过程、易于扩展。同时,也指出了其缺点,如增加系统复杂度和理解难度。
摘要由CSDN通过智能技术生成

工厂方法模式​​​​​​​

1.简单工厂模式的不足

在简单工厂模式中,只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单模式最大的缺点是当有新产品要加入到系统中时,必须要修改工厂类,加入必要的处理逻辑,这就违背了“开闭原则”。关于简单工厂模式可查看此链接:

2.工厂方法模式结构

 2.1模式类图

工厂方法模式包含如下角色:

1.Product(抽象产品)

        抽象产品是定义产品的接口,是工厂方法模式所创建对象的超类型,也就是产品对象的共同父类或接口。

2.ConcreteProduct(具体产品)

        具体产品实现了抽象产品接口,某种类型的具体产品由专门的具体工厂创建,它们之间一一对应,

3.Factory(抽象工厂)

        在抽象工厂类中,声明了工厂方法(Factory Method),用于返回一个产品。抽象工厂是工厂方法模式的核心,它与应用程序无关。任何在模式中创建对象的工厂类都必须实现该接口。

4.ConcreteFactory(具体工厂)

        具体工厂是抽象工厂类的子类,实现了抽象工厂中定义的工厂方法,并可由客户调用,返回一个具体产品类的实例。在具体工厂类中包含与应用程序密切相关发逻辑,并且既然等候应用程序调用以创建产品对象。

3.工厂方法模式实例与解析

题目:海尔工厂(Haier)生产海尔空调(HaierAirCondition),美的工厂(Midea)生产美的空调(MideaAirCondition) 。使用工厂方法模式描述该场景,绘制类图并编程实现。

3.1类图

3.2实例代码及解释

1.抽象产品类

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值