学习
实践
活动
专区
工具
TVP
写文章

设计模式简单工厂模式

概述 简单工厂模式又称静态工厂方法(Static Factory Method)模式,它不是Gof 所讲的23种设计模式之一,但是它却是我们在编码过程中经常使用的方法之一。 简单工厂模式是工厂模式中最简单的一种,它是一种实例化对象的方式,它可以用比较简单的方式隐藏创建对象的细节,一般只需要告诉工厂类一个参数,工厂类就会返回需要的产品类,但客户端看到的只是产品的抽象对象,无需关心到底是返回了哪个子类 简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 简单工厂模式图示 简单工厂模式包含如下角色: Factory:工厂角色 工厂角色负责创建所有实例的内部逻辑。 当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利; 简单工厂模式由于使用了静态工厂方法

19410

工厂模式——简单工厂模式

工厂模式分三类:简单工厂模式、工厂方法模式、抽象工厂模式。 首先介绍比较简单一种工厂模式——简单工厂模式。 我们以计算器作为一个例子来说明工厂模式到底是什么。 我也同样不例外,为了提高自己的编程水平,所以一点点开始学设计模式。其实在很多开源代码里也有很多经典的设计模式,不懂设计模式,真的很难读懂源代码。 既然是工厂模式,那就有一个工厂类。 package day_1_sampleFactory; /** * 简单工厂设计模式 * @author turbo * * 2016年8月31日 */ public class Main oper.setNumberA(1); oper.setNumberB(2); System.out.println(oper.getResult()); } } 利用简单工厂模式 #到现在,就是简单工厂模式的思想,为什么不能几个if分支判断来实现计算器呢?那样岂不是代码量更少,好像更容易阅读么?

40960
  • 广告
    关闭

    年末·限时回馈

    热卖云产品年终特惠,2核2G轻量应用服务器7.33元/月起,更多上云必备产品助力您轻松上云

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    『设计模式简单工厂模式

    简单工厂模式 简单工厂模式也被称为静态工厂模式;使用简单工厂模式可以将产品的“消费”和生产完全分开,客户端只需要知道自己需要什么产品,如何来使用产品就可以了,具体的产品生产任务由具体的工厂类来实现。 简单工厂模式通过这种做法实现了对责任的分割。 缺点 当产品有复杂的多层等级结构时,工厂类只有自己,以不变应万变,就是模式的缺点。 另外,简单工厂模式通常使用静态工厂方法,这使得无法由子类继承,造成工厂角色无法形成基于继承的等级结构 工厂类集成了所有产品的创建逻辑,当工厂类出现问题,所有产品都会出现问题;还有当新增加产品都会修改工厂类 如果想要把对外创建对象的职责集中管理 和控制,可以选用简单工厂 实现 简单工厂模式的构成 具体的工厂角色:Factory;在工厂中可以调用方法生产出具体的某个类型的产品; 抽象的产品角色:Father_Product 简单工厂模式的UML ? 代码实现 别诟病我这中文写代码,问就是不是做项目,这样更容易知道自己写的啥!

    18810

    设计模式 - 简单工厂模式

    接下来就来看看一种设计模式简单工厂模式: 它是一种创建型模式。创建型模式:只关注对象的创建过程。 简单工厂模式定义: 定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。 上述需求的简单工厂模式下的类图: ? 水果接口: 只需要定义一个抽象的水果接口,具体的水果,由具体的水果类来完成。 该模式并不完全符合开闭原则,比传统代码有了独立结构,没有在客户端进行复杂修改。 注:简单工厂模式并不属于常用的 23 种设计模式简单工厂模式缺点: 工厂类是该模式下的核心,一旦崩溃,全局皆输; 增加了系统中类的个数,一定程度上加大了维护难度; 不利于系统扩展,一旦添加新产品,需要修改工厂类,不符合开闭原则; 对了,他并不完美

    26920

    设计模式~简单工厂模式

    简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 工厂模式专门负责将大量有共同接口的类实例化。 工厂模式的几种形态: 简单工厂模式(Simple Factory):又称静态工厂方法模式 工厂方法模式(Factory Method):又称多态性工厂模式或虚拟构造子模式 抽象工厂模式(Abstract Factory): 又称工具箱模式 简单工厂模式的结构 ? 从上图可以看出,简单工厂模式涉及到工厂角色、抽象产品角色以及具体产品角色等三个角色: 工厂类角色(Creator): 担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。 简单工厂模式在java中的应用 DateFormat与简单工厂模式 示例 ?

    60120

    简单工厂模式

    学习python有一年了,在工作中经常使用,不过多是一些基础操作和简单库的使用,受朋友打击,想学习一些深层次的内容,所以从本篇开始学习设计模式,首先是简单工厂模式。 其实很早就将设计模式作为学习过程中的一环,不过以前基础薄弱,想来用不到高深的设计模式,所以并没有去学习相关知识,感觉现在可以了就开始看书,买了两本书《设计模式:可复用面向对象软件的基础》和《大话设计模式 》,目前主要是顺序阅读《大话设计模式》并将其中C#代码用python实现,并调试通过。 学习面向对象编程思想,开始考虑通过封装,继承,多态把程序耦合度降低,再用设计模式使程序更加灵活,容易修改,并且易于复用。 简单工厂模式 简单工厂模式主要在生成类时使用,它解决的是类的创建问题。

    8720

    简单工厂模式

    源起 最近在看程杰著作的《大话设计模式》,全书以小菜和大鸟对话的形势,由浅入深的讲解程序的设计思想,影射出一个个设计模式。 我之前虽然也使用过一些设计模式,但没有系统的学习、整理、总结,现从该书入手,拟补自己技术领域的一块空白。该书虽以C#语言为基础,但对Java程序猿来说,却不影响阅读。 本专栏记录自己学习设计模式的过程及自己的认识,争取从小菜蜕变成大鸟。 定义 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 简单工厂模式是工厂模式家族中最简单实用的模式。 需求 使用Java来编写一个计算器控制台程序,要求输入两个数和运算符号,得到结果。

    43900

    简单工厂模式

    简单工厂模式概述 ---- 定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类 在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被成为静态工厂方法 这时候,我这家 披萨店就可以看做工厂(Factory),而生产出来的披萨被成为产品(Product),披萨的名称则被称为参数,工厂可以根据参数的不同返回不同的产品,这就是简单工厂模式 简单工厂模式的结构与实现 简单工厂模式的优缺点和适用环境   ---- 简单工厂模式的优点     (1)工厂类包含必要的逻辑判断,可以决定在什么时候创建哪一个产品的实例。 (这也是我在开始的披萨店里遇到没有的披萨的解决情况) 简单工厂模式的缺点     (1)工厂类集中了所有产品的创建逻辑,职责过重,一旦异常,整个系统将受影响     (2)使用简单工厂模式会增加系统中类的个数 简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。

    23220

    简单工厂模式

    一、简单工厂模式的相关概念: 1、定义:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式。 每个类的主要功能: 简单工厂:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。 抽象产品:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。 具体产品:是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。 二、C++程序示例 1 // 简单工厂模式.cpp : 定义控制台应用程序的入口点。 所以要将69行中creat_fruit(num);声明为静态成员函数static fruit* creat_fruit(int name_num);估计这就是简单工厂模式又叫做静态工厂模型的原因吧。

    24290

    简单工厂模式

    创建型模式概述 2. 简单工厂模式概述 简单工厂模式基本实现流程 简单工厂模式的代码实现 简单工厂模式的应用实例 创建对象与使用对象 实例分析 何时不需要工厂? 简单工厂模式概述 简单工厂模式基本实现流程 具体产品类:将需要创建的各种不同产品对象的相关代码封装到具体产品类中 抽象产品类:将具体产品类公共的代码进行抽象和提取后封装在一个抽象产品类中 工厂类:提供一个工厂类用于创建各种产品 ,而无须知道其创建细节 简单工厂模式结构:简单工厂模式包含以下3个角色: Factory(工厂角色) Product(抽象产品角色) ConcreteProduct(具体产品角色) 简单工厂模式的代码实现 现使用简单工厂模式来设计该图表库。 简单工厂模式的简化 将抽象产品类和工厂类合并,将静态工厂方法移至抽象产品类中 简单工厂模式的优缺点与适用环境 模式优点 实现了对象创建和使用的分离 客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可

    11410

    简单工厂模式

    简介 简单工厂模式 (Simple Factory) 又叫静态工厂方法(Static Factory Method)模式简单工厂模式通常是定义一个工厂类,这个类可以根据不同变量返回不同类的产品实例。 简单工厂模式是一种对象创建型模式 (可参考 设计模式 创建型模式)。但是简单工厂模式不属于23种Gof设计模式之一。 图-简单工厂模式结构图 Product (Operation) : 产品角色,简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。 通过使用简单工厂模式,用户无需了解对象如何创建的,只要传入必要信息就可以了。 缺点 工厂类集中了所有实例的创建逻辑,违背了高内聚责任分配原则。 推荐阅读 本文属于 设计模式系列 。 简单工厂模式属于工厂模式家族,欢迎参考阅读 工厂方法模式 、抽象工厂方法模式 。 参考资料 《大话设计模式》 《HeadFirst设计模式

    26980

    简单工厂模式

    简单工厂模式的定义: 专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。 (Simple Factory)模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常他根据自变量的不同返回不同类的实例。 简单工厂模式实质是由一个工厂类根据传入的参量动态决定应该创建出哪一个产品类的实例。 简单工厂模式实际上不属于23个GOF模式,但他可以作为工厂方法模式(Factory Method)的一个引导。 简单工厂模式设计的角色: 工厂角色:是简单工厂的核心,它负责实现创建所有实例内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。 抽象产品角色:是简单工厂模式所创建的所有父对象类,它负责描述所有实例所有的公共接口。 具体产品角色:是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

    25520

    简单工厂模式

    begin 2018年8月19日19:44:25 简单工厂模式 定义 只要你说的,只要我有,我都给你。 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式。 设计模式分为创建型模式、结构型模式、行为型模式简单工厂模式属于创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。 简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 4、简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。 使用场景 工厂类负责创建的对象比较少。 总结 简单工厂模式:客户端不需要知道具体创建什么对象,只需要知道参数即可。

    14620

    简单工厂模式

    简单工厂模式解释: 简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其它类的实例 简单工厂模式的UML图: 简单工厂模式中包括的角色及其对应的职责例如以下: 工厂角色(Creator):这是简单工厂模式的核心,由它负责创建全部的类的内部逻辑。 简单工厂模式深入分析: 简单工厂模式解决的问题是怎样去实例化一个合适的对象。 简单工厂模式的核心思想就是:有一个专门的类来负责创建实例的过程。 另外,简单工厂模式的方法一般都是静态的,而静态工厂方法是无法让子类继承的,因此,简单工厂模式无法形成基于基类的继承树结构。 简单工厂模式的实际应用简单介绍: 作为一个最基本和最简单的设计模式简单工厂模式却有非常非常广泛的应用,我们这里以Java中的JDBC操作数据库为例来说明。

    10720

    简单工厂模式

    简单工厂模式 简单工厂模式又叫静态工厂方法,由一个工厂对象决定创建某一种对象类的实例,这种类型的设计模式属于创建型模式,在简单工厂模式中,可以根据参数的不同返回不同类的实例,简单工厂模式专门定义一个类来负责创建其他类的实例 描述 简单工厂模式目的是定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行,主要解决接口选择的问题,让其子类实现工厂接口,返回的也是一个抽象的产品。 客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆量。 使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复杂度和理解难度。 简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。

    21720

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 轻量应用服务器

      轻量应用服务器

      轻量应用服务器(Lighthouse)是一种易于使用和管理、适合承载轻量级业务负载的云服务器,能帮助中小企业及开发者在云端快速构建网站、博客、电商、论坛等各类应用以及开发测试环境,并提供应用部署、配置和管理的全流程一站式服务,极大提升构建应用的体验,是您使用腾讯云的最佳入门途径。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券