首页
学习
活动
专区
工具
TVP
发布

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

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

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

简单工厂模式工厂模式、抽象工厂模式比较

今天主要是分析 简单工厂模式工厂模式和抽象工厂模式的区别,所以这里就简单介绍一下设计模式的概念。...如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”。 结构定义: 是由一个工厂对象决定创建出哪一种产品类的实例。...简单工厂模式中包含的角色及其相应的职责如下: 工厂角色(Creator):这是简单工厂模式的核心,由它负责创建所有的类的内部逻辑。当然工厂类必须能够被外界调用,创建所需要的产品对象。...你可能在不知不觉中已经用到过这种模式了,但简单工厂模式并不属于23种设计模式之一,下面介绍他的改进版本:工厂方法模式。...结语 这就是我分享的简单工厂模式工厂模式和抽象工厂模式的区别,如果大家有更好的想法和需求,也欢迎大家加我好友交流分享哈。 —END—

88200

简单工厂模式

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

16920

简单工厂模式

源起 最近在看程杰著作的《大话设计模式》,全书以小菜和大鸟对话的形势,由浅入深的讲解程序的设计思想,影射出一个个设计模式。...本专栏记录自己学习设计模式的过程及自己的认识,争取从小菜蜕变成大鸟。...定义 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。...简单工厂模式工厂模式家族中最简单实用的模式。 需求 使用Java来编写一个计算器控制台程序,要求输入两个数和运算符号,得到结果。...; e.printStackTrace(); } } } 将创建对象的工作交给工厂负责,使客户端调用和运算类解耦,当我们更改运算类时,客户端代码不会受到影响,也不需要修改。

79300

简单工厂模式

简单工厂模式概述 ---- 定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类 在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被成为静态工厂方法...这时候,我这家 披萨店就可以看做工厂(Factory),而生产出来的披萨被成为产品(Product),披萨的名称则被称为参数,工厂可以根据参数的不同返回不同的产品,这就是简单工厂模式 简单工厂模式的结构与实现...Product.MethName(); product.MethodDiff(); } } 简单工厂模式的简化 ---- 为了简化简单工厂模式,将抽象产品类和工厂类合并...简单工厂模式的优缺点和适用环境   ---- 简单工厂模式的优点     (1)工厂类包含必要的逻辑判断,可以决定在什么时候创建哪一个产品的实例。...简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。

41320

简单工厂模式

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

43090

简单工厂模式

简单工厂模式的定义: 专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。...简单工厂模式实质是由一个工厂类根据传入的参量动态决定应该创建出哪一个产品类的实例。 简单工厂模式实际上不属于23个GOF模式,但他可以作为工厂方法模式(Factory Method)的一个引导。...简单工厂模式设计的角色: 工厂角色:是简单工厂的核心,它负责实现创建所有实例内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。...抽象产品角色:是简单工厂模式所创建的所有父对象类,它负责描述所有实例所有的公共接口。 具体产品角色:是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。...: 工厂类负责创建的对象比较少; 客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心; 由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。

34820

简单工厂模式

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

21620

简单工厂模式

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

22320

简单工厂模式

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

29020

简单工厂模式

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

39710

简单工厂模式

设计模式的目的是让代码易维护、易扩展,不能为了模式模式,因此一个简单的工具脚本是不需要用到任何模式的。 简单工厂模式又叫静态工厂方法模式工厂模式家族中最简单的一种模式。...简单工厂模式的好处是可以将产品对象的细节封装在其实现类的内部,改变一个产品对象具体实现不会影响其他产品。可扩展性强,当需要新增产品类型时,只需要添加对应的实现类,然后修改工厂,增加一个判断分支即可。...修改工厂函数带来的风险比较低。 另外一个比较典型的适合简单工厂模式的例子是计算器,计算器需要支持各种计算操作,比如加、减、乘、除、平方、立方、平方根、阶乘等等。...简单工厂模式的组成要素 工厂函数 负责具体产品对象的创建工作,是该模式的核心。当场景比较复杂时,可能需要用一个工厂类来负责产品的创建。...,对系统的维护和扩展非常不利; 使用场景 工厂类负责创建的对象比较少; 客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心; 由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用

23310

简单工厂模式

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

29010

简单工厂模式

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

44680

简单工厂模式工厂方法模式和抽象工厂模式

1、简单工厂 使用: public interface Keyboard { void print(); void input(Context context); } class HPKeyboard...所以,这种方式使用在业务较简单工厂类不会经常更改的情况。...创建戴尔键盘 Keyboard dellKeyboard = dellFactory.createKeyboard(); //... } } 优缺点: 增加分组非常简单...总结: 简单工厂:唯一工厂类,一个产品抽象类,工厂类的创建方法依据入参判断并创建具体产品对象。工厂方法:多个工厂类,一个产品抽象类,利用多态创建不同的产品对象,避免了大量的if-else判断。...抽象工厂:多个工厂类,多个产品抽象类,产品子类分组,同一个工厂实现类创建同组中的不同产品,减少了工厂子类的数量。

25130

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

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

21170
领券