`

工厂模式细致理解

 
阅读更多


工厂模式存在的意义:  对重复使用的复杂对象进行封装,一行代码new出来

1.工厂模式
  1.1 工厂方法模式 (一个类专门管理构造方法)
     1.1.1普通工厂模式(工厂类中只有一个方法,根据方法传入的参数创建不同对象)
     1.1.2多工厂模式(工厂类中有多个方法,每个方法创建不同的对象,避免打字母出错)
     1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
  1.2 抽象工厂模式  (将工厂由类变为接口,将类中的方法变为类)

 

重点理解抽象工厂模式与其他工厂模式的差别

 

 

抽象工厂模式的优点:对修改封闭,对扩展开放。其他工厂模式必须修改原来的代码

 举个例子,多工厂模式需要增加一个新的功能,需要修改工厂类,如下图所示

               旧代码                                       新代码

 

那么如果采用抽象工厂方式呢?
 先创建接口,然后一个具体的类实现接口就行了 

public interface Provider {  
    public Sender produce();  
}  ...
...
public class TestFactory implements Provider {  
    public Sender produce(){  
        return new TestSender ();  
    }  
}  
以后要添加新功能 只要按照以上的2个步骤,就可以了,不用修改原来的代码。
  • 大小: 25.6 KB
分享到:
评论

相关推荐

    工程模式(mtk平台手机)

    在MTK平台手机的工程模式中,首先会提供一些基本的版本信息,这些信息对于理解设备的配置及问题诊断有着重要的作用。 - **Version**:即版本信息,包含了手机系统、软件等的基本版本号。 - **MCU SW**:微程序控制...

    一种基于数据重构和富特征的神经网络机器阅读理解模型.pdf

    通过这种特征工程,模型能够捕捉到词汇的深层含义和上下文关系,这对于理解复杂文本和问题至关重要。 为了建立问题感知的文档表示,模型设计了一种简单但有效的策略。问题和文档之间的交互被纳入模型,使得模型能够...

    叉车三维模型_零件图_机械工程图_机械三维3D设计图打包下载.rar

    这些3D模型将每个部分都细致地展现出来,不仅方便设计优化,还能用于教学和维修参考。 在B05-叉车三维模型中,我们可以预见到可能包含以下内容: 1. 驾驶室:3D模型会展示驾驶室的内部结构,包括座椅、仪表盘、...

    现代工厂3D模型 -69832583164.zip

    3D模型能够提供真实感极强的视觉效果,使得用户可以从不同角度、距离观察和理解工厂的布局、设备配置以及生产流程。 在3D建模过程中,首先需要通过软件进行物体的几何造型,这通常涉及到点、线、面的基本元素,以及...

    大语言模型的工作原理与发展.pdf

    大语言模型的训练过程是一个复杂而细致的任务。它首先需要进行数据的收集和预处理,这涉及到数据清洗、分词、构建词汇表等步骤。接下来是模型的初始化,这一步骤包括设定模型参数的初始值。前向传播让输入数据通过...

    《软件工程导论》(第 6 版)1 - 13 章课后习题详解答案,解答全面细致 涵盖多领域,包括理论讲解、案例分析及设计方法等

    该资源以清晰的逻辑和准确的表述,对每一道习题进行深入剖析,帮助读者更好地理解软件工程的核心概念、方法和技术,为深入学习软件工程知识提供有力的支持。 第 1 章介绍软件工程学概述,包括软件危机的定义、表现和...

    工程力学(单辉祖)课后答案

    在解决工程力学问题时,学生经常会遇到困难,这些困难通常不是因为数学方法或工程力学理论本身难以理解,而是因为学生对基本概念、理论和方法的理解不够深刻,以及缺乏足够的练习来巩固和加深对这些知识的理解。...

    boil_jarsz9_Fluentlee模型_冷凝_fluent蒸发冷凝_fluent蒸发模型

    在本文中,我们将深入探讨由标题“boil_jarsz9_Fluentlee模型_冷凝_fluent蒸发冷凝_fluent蒸发模型...在实际应用中,结合Fluent的强大功能和Lee模型的理论基础,我们可以对复杂系统的蒸发冷凝过程进行细致入微的分析。

    软件工程-2软件生命周期与模型.ppt

    理解并掌握各种生命周期模型的原理和应用,对于提升软件工程的实践能力和项目成功率至关重要。在不断变化的开发环境中,灵活运用各种生命周期模型,结合项目实际情况,进行恰当的选择和调整,是每一个软件工程师的...

    Solidworks 3D 人体模型

    在实际应用中,用户可以利用SolidWorks的高级建模工具对模型进行细致的修改,比如调整肌肉结构、骨骼形态,甚至是皮肤的厚度,以满足特定项目的需求。同时,装配功能允许将其他设计元素与人体模型结合,如设备、配件...

    工人模型(FBX格式)

    例如,在3ds Max这款专业三维建模软件中,艺术家可以细致地塑造工人模型的每一个细节,包括面部表情、衣物褶皱等。完成后,通过FBX导出,模型就可以被其他软件,如Unity、Unreal Engine或WebGL框架Three.js所使用。 ...

    雷达天线3D模型

    创建这样的3D模型需要对雷达工程学有深入的理解,包括天线理论、电磁波传播、反射和聚焦原理等。同时,3D建模技术也是必不可少的,包括掌握建模工具的使用、材质和光照的设置、纹理映射以及最终的渲染输出。在实际...

    Java 解惑(细致实用)

    如单例模式、工厂模式、观察者模式等。理解和熟练运用这些模式可以提升代码的可读性和可维护性。 - 避免滥用设计模式,每个模式都有其适用场景。 9. **JVM优化** - 了解JVM的工作原理,包括类加载、内存模型、...

    Simulink中的混合动力汽车模型,simulink汽车仿真模型,matlab

    在Simulink中构建混合动力汽车模型是一项复杂而细致的工作,涉及到多个系统和子系统的集成。混合动力汽车(HEV)结合了内燃机(ICE)和电动机(EM),以实现更高的能源效率和减少排放。MATLAB的Simulink是进行这种...

    arc_model_new.rar_arc_model_new_cassie电弧模型_mayr_mayr arc_电弧仿真

    综上所述,"arc_model_new.rar" 文件包含了电弧仿真领域的核心模型,对于电气工程领域的研究人员和工程师来说,这是一个非常有价值的资源。通过这些模型,我们可以对电弧的物理过程有更直观的认识,并能应用于实际的...

    魔术公式轮胎模型

    轮胎与路面接触时,所表现出来的摩擦特性、力的传递以及轮胎自身的变形等都可通过该模型细致描述。 在MATLAB环境下,魔术公式轮胎模型被编写成一系列代码文件,其中包括`extension.m`、`drawing.m`、`factor.m`和`...

    W619手机模式代码

    - **工厂模式**:也称为工程模式,是一种专为制造商设计的测试模式,通常用于出厂前的质量控制检查,也可以帮助用户解决一些常见的软件问题。 #### 三、进入工厂模式的方法 根据提供的部分文本,我们可以推测进入...

    现代工程图学习题集

    《现代工程图学习题集》是一本专注于工程制图教育的资源集合,旨在帮助学生和专业人士深入理解和掌握...在学习过程中,建议结合实例和实物模型,以加深对抽象概念的理解,同时培养空间想象能力和细致入微的观察能力。

    simpack风力发电机模型

    发电机内部的磁场变化、电磁扭矩以及电能转换都可以通过细致的磁路模型来计算。这使得工程师能够在设计阶段就预测到发电机的效率和功率输出,为优化设计提供依据。 此外,控制系统是风力发电机模型不可或缺的一部分...

Global site tag (gtag.js) - Google Analytics