`
c_fanatic
  • 浏览: 67023 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

简单工厂模式-摘自《java与模式》

阅读更多
简单工厂模式是类得创建模式,又叫静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类得实例。

工厂模式的几种形态



书中的例子是以水果为例,Fruit是接口,Apple/grape/strawberry是具体实现类;园丁FruitGardner是工厂,根据客户指定的种类生成具体的Fruit实现,返回的是Fruit类型

简单工厂模式就是由一个工厂类根据传入的参量决定创建哪一种产品的实例。

抽象产品角色的主要目的是给所有的具体产品类提供一个共同的类型,在最简单的情况下,可以简化为一个标识接口,即没有声明任何方法的空接口。


单例模式使用了简单工厂模式。即单例类具有一个静态工厂方法提供自身的实例,一个抽象产品类同时是子类的工厂。但是单例模式不是简单工厂模式的退化情形,单例模式要求单例类得构造函数是私有的,从而客户端不能直接将之实例化,而必须通过这个静态工厂方法将之实例化,而且单例类自身是自己的工厂角色,即单例类自己负责创建自身的实例。


  • 大小: 65.6 KB
  • 大小: 61.5 KB
  • 大小: 72.2 KB
  • 大小: 100 KB
分享到:
评论

相关推荐

    个世界顶级摄影及相关网站-摘自《影像视觉》杂志(完整版).doc

    个世界顶级摄影及相关网站-摘自《影像视觉》杂志(完整版).doc

    Saltstack高阶教程--摘自博客园

    https://www.cnblogs.com/solitarywares/p/7629893.html require用于建立states之间的关系,这种依赖关系以<state name> : 的形式来定义 Requisites有两种形式,require和require_in,分别表示依赖和被依赖的关系

    gdb大全 --摘自《linux上C编程》

    - `tbreak`与`break`类似,但设置的是临时断点,只触发一次后自动删除。 3. **清除断点** 使用`clear`命令可以删除断点,`clear 行号`或`clear 函数名`可以删除指定的断点。若不提供参数,`clear`会删除所有断点...

    行测资料分析技巧-摘自学宝公务员网站.doc

    - 精确计算与近似计算:并非所有题目都需要精确计算,大部分情况只需求得满足条件的近似值。 - 简化技巧:通过提取数据的主要特征,减少计算的复杂性,例如找比例、倍数等关系。 - 使用估算和比例:在不影响答案...

    用户定义与UI设计--摘自《Its Android Time》第3章

    ### 用户定义与UI设计 #### 一、引言 在当今移动互联网时代,用户体验(User Experience, UX)成为了衡量一个应用程序是否成功的关键因素之一。而用户体验的核心组成部分之一就是用户界面(User Interface, UI)设计。...

    java数组函数(摘自JAVA编程思想)

    在Java编程中,数组是一种非常基础且重要的数据结构,它允许我们存储同类型的多个元素。在处理大量数据时,数组提供了高效且灵活的访问方式。本篇将详细讲解Java中的数组函数及其应用,这些功能主要来自`...

    SignalHarness-摘自altium+designer中文原厂教程

    Signal Harness保证连线可以画出任意的信号组合,适合比较复杂的电路和总线设计,Harness Connector连接器可以将不同的信号集合在一起,连接器可以捆绑到signalharness每个网络、总线、Sub-harness harness entry

    交叉编译和交叉调试环境搭建及使用-摘自网络

    5. 验证安装是否成功,可以编写一个简单的测试程序,如 `helloworld.c`,并使用交叉编译器进行编译。编译后的可执行文件需复制到目标机可访问的目录,如NFS挂载点,然后在开发板上运行验证。 **交叉调试GDB** GDB...

    java程序员必读基础篇 摘自南大百合精华篇

    12. **设计模式**:了解常见的设计模式,如单例模式、工厂模式、观察者模式等,能提升代码的可读性和可维护性。 13. **Java开发工具**:Eclipse、IntelliJ IDEA等集成开发环境(IDE),以及Maven、Gradle等构建工具...

    c#面向对象23种设计模式手册

    抽象工厂模式 - **意图**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 - **适用性**: - 系统不应该依赖于产品类实例如何被创建、组合和表达。 - 系统中有多组产品,但每次只使用其中...

    基桩的声波透射法检测-摘自桩基工程手册.pdf

    此方法适用于直径大于0.6米的混凝土灌注桩,桩径较小的情况可能会因声波换能器与检测管的声耦合误差较大而影响测试结果。桩的长度则不受限制。声波透射法的试验装置包括超声检测仪、换能器、预埋测管等,部分装置...

    【正点原子FPGA连载】第九章按键控制LED灯实验-摘自【正点原子】新起点之FPGA开发指。。。 fpga开发.pdf

    按键开关是常用的控制器件,结构简单,成本低廉,在家电、数码产品、玩具等领域有广泛的应用。本章将介绍如何使用按键控制多个LED的亮灭。 9.2 实验任务 使用新起点开发板上的四个按键控制四个LED灯。不同按键按下...

    【正点原子FPGA连载】第十四章串口通信实验-摘自【正点原子】新起点之FPGA开发指南-V2.1 fpga开发.pdf

    "FPGA开发中的串口通信...HAL库提供了多种串口模式,如 USART、UART、LIN等,可以根据实际情况选择合适的串口模式。同时,HAL库还提供了许多有用的函数,如串口初始化、串口发送、串口接收等,可以方便地实现串口通信。

    23种设计模式类图,摘自设计模式之禅(第2版)

    3. **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。 4. **建造者模式**:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。适用于当对象的构造...

    java编程那些事

    java编程那些事-摘自陈跃峰的博客:http://blog.csdn.net/Mailbomb/

    Collections源码java-java-design-patterns:来自不同来源的设计模式的集合。当需要在工作或学校中实施模式时,我

    集合原始java java-design-patterns 来自不同来源的设计模式的集合。 当需要在工作或学校中实施某种模式时,我认为这是一种供参考的备忘单。 阅读和视频资料 影片 达雷克·巴纳斯(Darek Barnas)- 图书 头先设计...

    fpga器件配置模式.pdf

    1. **并行主模式**:该模式下,一片FPGA与一片EPROM配合使用,FPGA处于主导地位,控制整个配置流程。这种配置模式适用于需要快速启动的应用场景。 2. **主从模式**:在该模式中,可以通过一片PROM来编程多片FPGA。...

    DB2Java存储过程.pdf

    本部分内容摘自 IBM Redbooks 出版的一份文档,详细介绍了如何在 DB2 中使用 Java 实现存储过程,并涵盖了跨平台实施的指导。 - **出版日期**:2000 年 9 月。 - **适用版本**:适用于 DB2 Universal Database (UDB...

    Java集合类源码(摘自jr源码)

    Java集合框架是Java编程语言中的核心部分,它提供了一组数据结构和算法,使得程序员能够高效地管理和操作数据。在给定的压缩包文件中,包含了一些关键的集合类源码,如`TreeMap`、`Hashtable`、`ArrayList`、`...

    用Meta标签代码让360双核浏览器默认极速模式不是兼容模式

    以下信息摘自360官方网站: 浏览模式 极速模式、兼容模式及IE9高速模式是360浏览器显示网页时使用的三种模式: 表示极速模式 表示兼容模式 表示IE9/IE10模式(仅在安装了IE9或IE10后可用) 360极速浏览器会自动为您...

Global site tag (gtag.js) - Google Analytics