`
xiaoqulai
  • 浏览: 75857 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
han
文章分类
社区版块
存档分类
最新评论

我理解的工厂模式

阅读更多

首先,工厂模式可以分为两种: 工厂方法、抽象工厂。
其次,还有一种人们称之为简单工厂模式,其实谈不上叫模式,就是把一个创建对象的方法,提取出来,放到另外一个类中帮助实现,从设计角度上来讲,谈不上是模式

先说简单工厂模式的应用场景,如果一个对象的产生不仅仅是new一下就解决问题,比如需要根于不同状态产生不同实例,而这个状态标识又是动态的,则每次new的时候,都要通过if判断到底new那一个实例,这将造成代码的重复,放在一个简单工厂类中的时候,就可以避免重复编码,将产生同接口的不同实例。比如,在肯德基你可以吃汉堡,汉堡有鸡腿汉堡和鳕鱼堡,你把你要选得标识名称告诉肯德基,他就会给你你想要的汉堡,而不是他把鸡腿汉堡和鳕鱼堡都拿到你面前,你来选择(if else).

工厂方法其实是一种继承关系,一个抽象类工厂,里面有个方法是抽象的,用来生成用户需要的对象实例,然后抽象工厂的子类实现这个抽象方法,返回用户需要的对象实例,不同的抽象工厂子类返回不同的对象实例,这些实例实现同一个接口,属于继承关系,比如汉堡有麦当劳和肯德基,这两个对象都继承汉堡,抽象工厂是快餐店,有个抽象方法叫生产汉堡,肯德基的快餐店实例生成肯德基汉堡,麦当劳的快餐店生成麦当劳的汉堡

抽象工厂容易混淆为多个工厂方法, 抽象工厂用来生成一组对象,这组对象直接是组合关系,先定义一个接口,该接口表明要创建哪些组合对象,实现该接口的工厂类负责生产这些对象,这些对象有各自的接口,所以每个工厂类实例生成的组合对象都是不一样的,但拥有相同的组合关系。比如在肯德基的汉堡包,需要的材料在武汉和上海都是相同的,这些材料是组合关系,组成汉堡包,但材料本身有不同的实力,比如牛肉,武汉的牛肉和上海的牛肉的实质不一样(上海的好吃些~),所以武汉的工厂能生产武汉的汉堡包,上海的能生成上海的,汉堡包用的材料是组合关系,组合对象抽象名相同,但具体材料是不一样的。
分享到:
评论

相关推荐

    工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式

    通过学习和理解这三种工厂模式,开发者可以更好地组织代码,降低模块间的耦合,提高软件的可维护性和可扩展性。在实际开发过程中,根据项目需求和产品结构选择合适的工厂模式,能够有效地提高代码质量。

    简单工厂模式-工厂方法模式-抽象工厂模式

    在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...

    深入了解工厂模式&工厂方法&抽象工厂

    工厂模式是一种常用的设计模式,主要用于在代码中创建对象。它将对象的创建过程封装起来,使得客户端无需关心具体的实现细节,只需通过工厂方法获取所需...理解和掌握这三种工厂模式对于进行高质量的软件设计至关重要。

    简单工厂模式、工厂模式、抽象工厂模式案例(C++实现)

    这些工厂模式的实现文件("工厂模式")可以作为学习和理解设计模式的实例。通过阅读和分析这些代码,你可以深入理解如何在C++中应用这些模式,以及它们在实际项目中的价值。此外,这些模式不仅限于C++,在Java、...

    设计模式单例模式和工厂模式综合应用

    总的来说,这个项目为学习和理解单例模式和工厂模式在实际开发中的应用提供了一个很好的示例。通过结合这两种模式,可以构建出既保证了对象唯一性,又能灵活应对不同产品创建需求的系统。对于Java开发者来说,深入...

    设计模式-抽象工厂模式(讲解及其实现代码)

    抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体的类。这种模式允许系统独立于如何创建、...理解并合理运用抽象工厂模式,可以提升软件架构的质量,降低系统维护的成本。

    抽象工厂模式+工厂方法模式+策略模式+类图实现手机加工厂

    本文将探讨三个重要的设计模式:抽象工厂模式、工厂方法模式以及策略模式,并结合一个实际的场景——手机加工厂,来具体阐述它们的应用。 首先,我们来看**抽象工厂模式**。这个模式主要用于创建相关或依赖对象的...

    工厂模式源代码

    在描述中提到的文章《工厂模式的实践与解析》中,作者fanweiwei分享了他对工厂模式的理解和应用实例。文章可能涵盖了工厂模式的基本概念、分类以及如何在实际编程中运用。通常,工厂模式有三种主要类型:简单工厂...

    几种设计模式的理解设计模式理解

    以下是对几种设计模式的详细理解和应用。 1. 工厂模式 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在这个模式中,一个工厂类负责创建对象,而客户端无需知道创建的具体过程。工厂类可以根据...

    JAVA 设计模式 工厂模式 代理模式 迭代模式 责任链模式 源码

    源码分析是理解设计模式的关键步骤,因为通过阅读和调试源码,我们可以深入理解模式的内部工作原理,并将其应用到自己的项目中。在给定的"设计模式源码"文件中,你将有机会亲自查看和学习这些模式的具体实现,进一步...

    导航进入工厂模式的方法

    工厂模式,也称为工程模式或调试模式,是制造商为了测试和调整设备功能而设置的一种特殊模式。在这个模式下,用户可以访问和修改通常隐藏的高级设置,包括地图数据、系统参数以及硬件诊断。下面我们将详细介绍如何...

    设计模式 工厂模式(附源码)

    通过阅读源码,你可以更好地理解工厂模式的运作方式,并在自己的项目中灵活应用。 学习设计模式,尤其是工厂模式,对于提升C#编程技能、理解和设计更高质量的软件系统至关重要。通过实践和理解这些模式,你将能够...

    JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)

    **简单工厂模式**是软件设计模式中的一种,属于创建型模式。在Java编程中,它是一种用于创建对象的简便方法,将对象的实例化过程封装到一...理解并合理运用简单工厂模式,能够帮助我们编写出更加灵活、易于维护的代码。

    酷派各种机型进工程模式方法

    在智能手机领域,酷派作为国内知名的手机品牌,其设备拥有丰富的功能和自定义选项。...因此,用户在探索工程模式时,应确保自己理解每个选项的含义和可能的影响。如果不确定,最好寻求专业人员的帮助。

    工厂模式-设计模式

    首先,我们需要理解工厂模式的核心概念。工厂模式是一种创建型设计模式,它提供了一个创建对象的最佳接口,隐藏了对象的创建逻辑,让客户端代码无需关注具体对象的创建过程。通过使用工厂模式,我们可以将类的实例化...

    工厂模式(简单工厂,普通工厂,抽象工厂)代码java

    在软件设计模式中,工厂模式是一种非常常用的行为型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接创建对象,而是通过一个...阅读并理解这些代码有助于深入理解工厂模式及其在Java编程中的应用。

    简单工厂模式,工厂方法模式,抽象工厂模式

    在软件设计模式中,工厂模式是一种非常基础且实用的模式,它主要用来解决对象创建的问题,使得代码在面对多种产品类时保持灵活和解耦。...理解并恰当运用这三种工厂模式,可以显著提高软件的可维护性和可扩展性。

    设计模式之单例模式(结合工厂模式)

    在项目中,`src`目录可能包含了这些设计模式的源码示例,可以用来学习和理解如何实际应用单例模式和工厂模式。通过阅读和分析这些代码,你可以更深入地理解这两种模式的实现细节及其在实际开发中的作用。同时,也...

    抽象工厂模式+反射技术(抽象工厂模式+简单工厂模式)

    在软件工程中,当系统需要在运行时选择不同的产品族时,或者想要隔离具体产品的实现细节时,抽象工厂模式就显得尤为重要。 首先,我们来看一下“抽象工厂模式+反射技术”。在Java或其他面向对象的语言中,反射是一...

    工厂方法模式和抽象工厂模式

    在软件设计模式中,工厂方法模式(Factory Method Pattern)和抽象工厂模式(Abstract Factory Pattern)是两种常用的创建型设计模式,它们都属于“工厂”家族,但有着不同的应用场景和目标。 工厂方法模式的核心...

Global site tag (gtag.js) - Google Analytics