当前位置:首页 > 科技 >

简单工厂模式和抽象工厂模式(设计模式深入浅出之工厂模式)

来源:原点资讯(www.yd166.com)时间:2024-07-04 05:32:48作者:YD166手机阅读>>

前面的22个常用的设计模式现已学习完毕,大家可以看到22个设计模式中提及到了带有“工厂”性质的相关模式,例如:构建方法、静态构建(或工厂)方法、工厂方法、抽象工厂、简单工厂等。类似这些模式,我们拿出来将其概念跟他们之间的区别进行比较跟说明。

简单工厂模式和抽象工厂模式,设计模式深入浅出之工厂模式(1)

  • 抽象工厂模式

抽象工厂模式是一种创建型模式,它能创建一系列相关或相互依赖的的对象而无需指定其具体类。那么有人要问,什么是“系列对象”?那接下来我将用生活中具体的示例来解释清楚这种概念。

例如有这样的一组对象:运输工具-引擎-控制器

  1. 汽车 涡轮发动机 方向盘
  2. 飞机 喷气式发动机 操纵杆

注:如程序中不涉及具体产品系列的话,那就不需要使用抽象工厂。

  • 工厂方法模式

工厂方法模式是一种创建型模式,其在父类中提供创建对象的方法,允许子类实例化对象的类型。

如果在基类及其扩展类中都有一个构件方法的话,他可能就是工厂方法模式。

  • 简单工厂模式

简单工厂模式描述了一个类,他包含了拥有大量条件语句的构建方法,可工具方法的额参数来选择对哪种产品进行初始化将其返回。

人们通常将简单工厂与普通的工厂或其他创建型设计模式混淆。在绝大多数情况下,简单工厂是引入工厂方法或抽象工厂模式时的一个中间步骤。

简单工厂通常没有子类。但当从一个简单的工厂中抽取出子类后,他看上去就会更像经典的工厂方法模式了。

注:如果你讲简单工厂声明为abstract类型,他并不会变为抽象工厂模式。

  • 静态构建方法

静态构建方法是被声明为static的构建方法。意思就是你无需创建对象就能在某些类上调用该方法。

不要因为某些人将这些方法称为“静态工厂方法”而被迷惑,这种称呼并不好,工厂方法是一种依赖于继承的设计模式。如果将他设置为static,你就不能在子类中对其进行扩展,这就破坏了该模式的目的。

当静态构建方法返回一个新对象时候,它就成为构造函数的替代品。

  • 构建方法

构建方法被定义为“创建对象的方法”。这意味着每个工厂方法模式的结果都是“构建方法”,但反过来则并非如此。这意味着你可以用“构建方法”来代替在重构中使用的“工厂方法”和“静态工厂方法”。

在实际中,构建方法只是构造函数调用的封装器。它可能只是一个能更好地表达意图的名称。此外,它可以让你的代码独立于构造函数的改动,甚至还可以包含一些特殊的逻辑。返回已有对象以而不是创建新对象。

许多人会仅仅因为这些方法创建了新对象而称之为“工厂方法”。其中的逻辑很好理解:所有的工程都会创建对象,而该方法会创建对象。所以显然它是一个工厂方法。但是当你正在遇到真正工厂方法时候,这将造成许多混淆跟迷惑。

,

栏目热文

通俗理解工厂模式(工厂模式三种详解)

通俗理解工厂模式(工厂模式三种详解)

核心作用定义一个用于创建产品的接口,由子类决定生产什么产品。分类简单工厂模式工厂方法模式抽象工厂模式简单工厂模式简单工厂...

2024-07-04 04:55:24查看全文 >>

工厂的生态模式(如何把濒临倒闭的工厂做起来)

工厂的生态模式(如何把濒临倒闭的工厂做起来)

齐鲁网·闪电新闻10月24日讯 建立健全绿色低碳循环发展经济体系,促进经济社会发展全面绿色转型,是解决我国资源环境生态问...

2024-07-04 04:58:48查看全文 >>

简单工厂模式的优势(工厂模式与工厂方法模式的区别)

简单工厂模式的优势(工厂模式与工厂方法模式的区别)

引言在软件设计中,工厂模式作为一种创建型设计模式,以其独特的设计理念和实现方式为系统架构带来了诸多优势。本文将详细介绍工...

2024-07-04 05:32:06查看全文 >>

简单工厂模式和工厂模式区别(工厂方法模式的通俗理解)

简单工厂模式和工厂模式区别(工厂方法模式的通俗理解)

简单工厂模式(Simple Factory Pattern)是一种创建型的设计模式,主要用于创建对象实例。在简单工厂设计...

2024-07-04 05:19:19查看全文 >>

羊奶适合每天喝吗(羊奶不建议长期喝吗)

羊奶适合每天喝吗(羊奶不建议长期喝吗)

羊奶要喝多少?喝少了难以发挥作用效果,喝多了难以吸收浪费了。需根据年龄阶段、工作强度来区分羊奶的用量。在正常的饮食下,每...

2024-07-04 05:28:21查看全文 >>

工厂模式有哪些好处(工厂模式和简单工厂模式的区别)

工厂模式有哪些好处(工厂模式和简单工厂模式的区别)

在程序中类是表示客观世界存在的某类群体的一些基本特征的抽象,对象就是一个个具体的东西,也可以理解为类的一个具体实例。工厂...

2024-07-04 05:30:41查看全文 >>

广东旅游景点推荐一览表(广东十大旅游景点推荐表)

广东旅游景点推荐一览表(广东十大旅游景点推荐表)

广东,一个充满活力与故事的地方,不仅孕育了独特的岭南文化,接下来盘点下广东最值得去的十大景点,保证让你的行程充满趣味与欢...

2024-07-04 05:05:23查看全文 >>

广东旅游景点大全图(广东十大旅游景点分布图)

广东旅游景点大全图(广东十大旅游景点分布图)

千年商都、岭南文化中心、近现代革命重要起源地之一、食在广州......这些都是广州的标签深厚的历史积淀,多元的城市人群是...

2024-07-04 05:15:11查看全文 >>

西红柿牛腩煮得柴(西红柿炖牛腩怎么提前用电饭煲炖)

西红柿牛腩煮得柴(西红柿炖牛腩怎么提前用电饭煲炖)

做番茄牛腩时,很多人加错了水,难怪炖出来的牛腩发柴难嚼不入味。现在已经是秋天了,自古以来,在民间就有秋天“贴秋膘”的习俗...

2024-07-04 05:12:07查看全文 >>

西红柿炖牛腩汤汁多了(西红柿牛腩怎么做到汤汁浓稠)

西红柿炖牛腩汤汁多了(西红柿牛腩怎么做到汤汁浓稠)

天热的时候,就吃这种西红柿炖牛腩,制作的时候要注意这3点,做出的汤才能鲜亮可口、牛肉软滑不硬、西红柿酸而甜而不腻。三伏炎...

2024-07-04 05:29:36查看全文 >>

文档排行