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

设计模式【2】-- 简单工厂模式了解一

1.简单工厂模式介绍 2.简单工厂模式举例 3.简单工厂模式的优劣 1.简单工厂模式介绍 工厂模式,比较常用,属于创建型模式,也就是主要是用来创建对象的。 工厂模式,有三种,主要分为: 简单工厂模式 工厂方法模式 抽象工厂模式 其中,本文要讲的就是,简单工厂模式,但是简单工厂模式,并不是属于GoF讲的23种设计模式中。简单工厂模式,也叫静态工厂方法模式简单而言,就是有一个具体的工厂类,用来生产不同类型的对象,而这些对象,都有相似的特点,它们都实现同一个接口。 什么时候应该使用工厂模式?为什么需要工厂模式呢? 2.简单工厂模式举例 假设现在有一个果园,用来种植各种水果,但是每一种水果种植的方式又不一样。 3.简单工厂模式的优劣 优点: 产品和工厂的职责比较分明,工厂负责创建,产品负责自己的实现 产生/构建产品比较简单,不需要关注内部细节,只需要知道自己想要哪一种。 增加或者修改产品比较简单,解耦合。

8920

Java 关于策略模式+简单工厂模式的思考

设计框架大概思路是这样的 第一层:通过策略模式,选择出具体的发送类型,比如:短信、微信、邮件。。。。。 第二层:再次通过策略模式,选择出具体的第三方平台,比如短信平台:阿里云、腾讯云、华为云。。。。。。 第三层:通过一个简单的工厂,选择出具体的模板,然后发送出去 image.png   第一二层,以后可能会扩展出2、3家第三方平台,使用策略模式还是可以接受的,但是到了第三层的话,可能会出现一二十个模板, 这样子的话,会出现一大堆if else等等(写过简单工厂的都清楚),然后自己手动封装一个工具类,获取一个类的所有子类,然后通过一个字段创建对象,这里我做了一个优化,找到的值,我会先放到一个Map中,第二次请求来的时候 ,先去Map中查询,是否有值,有值的话,直接调用,没有值的话,才会去重新找一遍,这样子性能也得到了提高 image.png 项目结构 image.png 工具类 package com.ybchen.messagegateway

14020
  • 广告
    关闭

    新年·上云精选

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

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

    设计模式【2】-- 简单工厂模式了解一

    TOC 1.简单工厂模式介绍 工厂模式,比较常用,属于创建型模式,也就是主要是用来创建对象的。 工厂模式,有三种,主要分为: 简单工厂模式 工厂方法模式 抽象工厂模式 其中,本文要讲的就是,简单工厂模式,但是简单工厂模式,并不是属于GoF讲的23种设计模式中。简单工厂模式,也叫静态工厂方法模式简单而言,就是有一个具体的工厂类,用来生产不同类型的对象,而这些对象,都有相似的特点,它们都实现同一个接口。 什么时候应该使用工厂模式?为什么需要工厂模式呢? 2.简单工厂模式举例 假设现在有一个果园,用来种植各种水果,但是每一种水果种植的方式又不一样。 3.简单工厂模式的优劣 优点: 产品和工厂的职责比较分明,工厂负责创建,产品负责自己的实现 产生/构建产品比较简单,不需要关注内部细节,只需要知道自己想要哪一种。 增加或者修改产品比较简单,解耦合。

    17800

    解决简单恢复模式产生的日志增长

    然后将数据库改为简单恢复模式,但是依然存在这个问题。经过查询资料发现了日志文件在简单模式依然增加的原因。 Checkpoint CheckPoint和lazyWriter一样,都会将缓冲区内脏数据写入到磁盘,同时在简单恢复模式截断日志;lazyWriter缓存不足的时候会触发执行,这里我们暂且不做讨论。 数据库恢复模式简单恢复模式当日志文件使用超过70%时。 CheckPoint执行的时间间隔阈值被足够多的日志记录超过。 手动执行CheckPoint。 场景描述:   Simple模式主要用于非critical的业务,比如开发库和测试库,那么这次由于测试环境的磁盘紧张我们也都采用了简单模式。 首先在一个测试数据库中运行一脚本创建一个测试表并填充一些数据。   测试数据库设置:   1.设置为简单的恢复模式。   2.日志的大小为100M。

    61180

    设计模式简单工厂模式

    概述 简单工厂模式又称静态工厂方法(Static Factory Method)模式,它不是Gof 所讲的23种设计模式之一,但是它却是我们在编码过程中经常使用的方法之一。 简单工厂模式是工厂模式中最简单的一种,它是一种实例化对象的方式,它可以用比较简单的方式隐藏创建对象的细节,一般只需要告诉工厂类一个参数,工厂类就会返回需要的产品类,但客户端看到的只是产品的抽象对象,无需关心到底是返回了哪个子类 简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 简单工厂模式图示 简单工厂模式包含如下角色: Factory:工厂角色 工厂角色负责创建所有实例的内部逻辑。 4 应用场景 工厂类负责创建的对象比较少; 客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心; 由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况应用。 5 实例 ?

    19610

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

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

    41060

    设计模式~简单工厂模式

    简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 工厂模式专门负责将大量有共同接口的类实例化。 工厂模式的几种形态: 简单工厂模式(Simple Factory):又称静态工厂方法模式 工厂方法模式(Factory Method):又称多态性工厂模式或虚拟构造子模式 抽象工厂模式(Abstract Factory): 又称工具箱模式 简单工厂模式的结构 ? 工厂类在客户端的直接调用创建产品对象,它往往由一个具体的java类实现。 抽象产品角色(Product): 担任这个角色的类是由工厂方法模式所创建的对象的父类,或他们共同拥有的接口。 简单工厂模式在java中的应用 DateFormat与简单工厂模式 示例 ?

    60520

    设计模式 - 简单工厂模式

    接下来就来看看一种设计模式简单工厂模式: 它是一种创建型模式。创建型模式:只关注对象的创建过程。 上述需求的简单工厂模式的类图: ? 水果接口: 只需要定义一个抽象的水果接口,具体的水果,由具体的水果类来完成。 该模式并不完全符合开闭原则,比传统代码有了独立结构,没有在客户端进行复杂修改。 注:简单工厂模式并不属于常用的 23 种设计模式简单工厂模式缺点: 工厂类是该模式的核心,一旦崩溃,全局皆输; 增加了系统中类的个数,一定程度上加大了维护难度; 不利于系统扩展,一旦添加新产品,需要修改工厂类,不符合开闭原则; 对了,他并不完美 好了我的读者朋友,简单工厂设计模式介绍到这里,如有疑问,欢迎与我沟通交流。 感谢阅读,感谢陪伴。还没关注的,记得关注➕一。 表情包来源于网络,侵删。谢谢。

    27220

    『设计模式简单工厂模式

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

    19010

    详解Linux系统三种模式简单命令

    i的编辑器: 1、三种模式:底行模式 命令模式 插入模式 命令模式: 1、从命令切换插入模式: i : 光标所在左侧输入I 光标移动到所在行的最左则 o :光标移动的下一行(新的一行) O: nyyn>0 单词:nywn>0 3、粘贴:p 4、撤消到上一步骤:u 5、恢复到上一步: ctrl+r 6、替换: 替换一个字符:r 连续替换 :R 7、定位行: 上:n- : n+ 8、删除: 删除字符:nx(右) nX(左)n>0 删除行:ndd n,n1 dd 9、查找关键字:/key_value(向下查找key:n 向止查找key:N ) 底行模式: 1、显示行号 ,默认生成a.out 2、指定可执行文件名: gcc 源程序.c -o 可执行文件名 执行程序:路径/程序名 【3、编译过程:(函数)】 总结 以上所述是小编给大家介绍的Linux系统三种模式简单命令

    36941

    简单工厂模式

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

    8720

    简单工厂模式

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

    44000

    简单工厂模式

    简单工厂模式概述 ---- 定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类 在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被成为静态工厂方法 这时候,我这家 披萨店就可以看做工厂(Factory),而生产出来的披萨被成为产品(Product),披萨的名称则被称为参数,工厂可以根据参数的不同返回不同的产品,这就是简单工厂模式 简单工厂模式的结构与实现 简单工厂模式的优缺点和适用环境   ---- 简单工厂模式的优点     (1)工厂类包含必要的逻辑判断,可以决定在什么时候创建哪一个产品的实例。 4 适用环境 在以下情况可以使用简单工厂模式: 工厂类负责创建的对象比较少:由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。 尽管简单工厂模式的代码实现中,有多处 if 分支判断逻辑,违背开闭原则,但权衡扩展性和可读性,这样的代码实现在大多数情况(比如,不需要频繁地添加 parser,也没有太多的 parser)是没有问题的

    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(具体产品角色) 简单工厂模式的代码实现 现使用简单工厂模式来设计该图表库。 简单工厂模式的简化 将抽象产品类和工厂类合并,将静态工厂方法移至抽象产品类中 简单工厂模式的优缺点与适用环境 模式优点 实现了对象创建和使用的分离 客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可 通过引入配置文件,可以在不修改任何客户端代码的情况更换和增加新的具体产品类,在一定程度上提高了系统的灵活性 模式缺点 工厂类集中了所有产品的创建逻辑,职责过重,一旦不能正常工作,整个系统都要受到影响

    11610

    关注

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

    相关产品

    • 云联网

      云联网

      云联网(CCN)提供全网互联服务 ,助力您实现各地域的云上、云下多点互联。云联网的智能调度、路由学习等特性 ,可帮助您构建极速、稳定、经济的全网互联 ,轻松满足在线教育、游戏加速、混合云等全网互联场景下的极速体验。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券