首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

14020

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

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

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

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

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

24000

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

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

99880

设计模式--简单工厂模式

简单工厂模式是一种创建型模式,它可以根据参数的不同返回不同类的实例,通常用一个静态方法来实现工厂的功能,这个方法就叫做简单工厂。...简单工厂模式的优点是可以将对象的创建和使用分离,降低客户端的复杂度;缺点是不符合开闭原则,如果要增加新的产品类,就需要修改工厂类的代码。 以下是使用C#语言写的简单工厂模式的例子。...."); } ///定义一个简单工厂类,用于创建不同的产品对象 public class SimpleFactory { // 定义一个静态公共方法...return null; } } } static void Main(string[] args) { // 通过简单工厂类的..."); // 调用产品对象的方法,显示产品信息 p1.Show(); p2.Show(); }运行结果:图片【小结】设计模式是一种程序设计的思想

21370

设计模式简单工厂模式

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

39110

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

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

90660

设计模式 - 简单工厂模式

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

40820

『设计模式简单工厂模式

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

32410

设计模式 -- 简单工厂模式

表述 (创建型模式) 专门定义一个类来负责创建其他类的实例,被创建的实例常常具有共同的父类 定义一个抽象类,抽象类中声明公共的特征及属性,抽象子类继承自抽象类,去实现具体操作。...工厂类根据外界需求,在工厂类中创建对应的抽象子类实例并传给外界,而对象的创建是由外界决定的,外界只需要知道抽象子类对应的参数即可,而不需要知道抽象子类的创建过程,在外界使用时甚至不用引入抽象子类 简单工厂模式类图...简单工厂模式类图 SimpleFactory(工厂类):根据传入的参数决定创建并返回哪个具体的抽象子类 Product(抽象类):定义抽象子类所需的属性和方法,子类通过继承自抽象类获取这些方法 ProductA...OperationFactory.createOperation(operatr: "-") oper.numA = 8 oper.numB = 5 let res = oper.getResult() print(res) 简单工厂模式会有一个问题

14110

设计模式~简单工厂模式

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

99620

详解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系统三种模式简单命令

79141

简单工厂模式

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

79900

简单工厂模式

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

17920

简单工厂模式

简单工厂模式 简单工厂模式又叫静态工厂方法,由一个工厂对象决定创建某一种对象类的实例,这种类型的设计模式属于创建型模式,在简单工厂模式中,可以根据参数的不同返回不同类的实例,简单工厂模式专门定义一个类来负责创建其他类的实例...描述 简单工厂模式目的是定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行,主要解决接口选择的问题,让其子类实现工厂接口,返回的也是一个抽象的产品。...通过引入配置文件,可以在不修改任何客户端代码的情况更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。 缺点 由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。...使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复杂度和理解难度。...简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。

29220

简单工厂模式

简单工厂模式: 含义:简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。...因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。...问题 何时使用 简单工厂模式,我的理解是:某类产品的成产线。通过设置不同的参数,生产出同一类别下不同形态的产品。...那就很简单,在新建个条形图的类。然后修改一工厂类ChartFactory。看似简单,但是产品多的情况每次都要去修改工厂类无疑会造成维护困难。逻辑复杂。...由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况应用。 至此,简单工厂模式就能明白了吧。

40310

简单工厂模式

设计模式的目的是让代码易维护、易扩展,不能为了模式模式,因此一个简单的工具脚本是不需要用到任何模式的。 简单工厂模式又叫静态工厂方法模式,工厂模式家族中最简单的一种模式。...简单工厂模式的好处是可以将产品对象的细节封装在其实现类的内部,改变一个产品对象具体实现不会影响其他产品。可扩展性强,当需要新增产品类型时,只需要添加对应的实现类,然后修改工厂,增加一个判断分支即可。...另外一个比较典型的适合简单工厂模式的例子是计算器,计算器需要支持各种计算操作,比如加、减、乘、除、平方、立方、平方根、阶乘等等。...简单工厂模式的组成要素 工厂函数 负责具体产品对象的创建工作,是该模式的核心。当场景比较复杂时,可能需要用一个工厂类来负责产品的创建。...,因此一般只在很简单的情况应用。

24110
领券