这篇文章主要介绍了python模式 工厂模式原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

工厂模式是一个在软件开发中用来创建对象的设计模式。

工厂模式包涵一个超类。这个超类提供一个抽象化的接口来创建一个特定类型的对象,而不是决定哪个对象可以被创建。

为了实现此方法,需要创建一个工厂类创建并返回。

当程序运行输入一个“类型”的时候,需要创建于此相应的对象。这就用到了工厂模式。在如此情形中,实现代码基于工厂模式,可以达到可扩展,可维护的代码。当增加一个新的类型,不在需要修改已存在的类,只增加能够产生新类型的子类。

简短的说,当以下情形可以使用工厂模式:

1.不知道用户想要创建什么样的对象

2.当你想要创建一个可扩展的关联在创建类与支持创建对象的类之间。

一个例子更能很好的理解以上的内容:

我们有一个基类Person ,包涵获取名字,性别的方法 。有两个子类male 和female,可以打招呼。还有一个工厂类。

工厂类有一个方法名getPerson有两个输入参数,名字和性别。

用户使用工厂类,通过调用getPerson方法。

在程序运行期间,用户传递性别给工厂,工厂创建一个与性别有关的对象。因此工厂类在运行期,决定了哪个对象应该被创建。

class Person:

def __init__(self):

self.name = None

self.gender = None

def getName(self):

return self.name

def getGender(self):

return self.gender

class Male(Person):

def __init__(self, name):

print "Hello Mr." + name

class Female(Person):

def __init__(self, name):

print "Hello Miss." + name

class Factory:

def getPerson(self, name, gender):

if gender == 'M':

return Male(name)

if gender == 'F':

return Female(name)

if __name__ == '__main__':

factory = Factory()

person = factory.getPerson("Chetan", "M")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python工厂模式看不懂_python模式 工厂模式原理及实例详解相关推荐

  1. python字符串strip的作用_Python字符串函数strip()原理及用法详解

    Python字符串函数strip()原理及用法详解 strip:用于移除字符串头尾指定的字符(默认为空格)或字符序列.注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符. 语法:str.s ...

  2. python生成二维码_python生成二维码的实例详解

    python生成二维码的实例详解 版本相关 操作系统:Mac OS X EI Caption Python版本:2.7 IDE:Sublime Text 3 依赖库 Python生成二维码需要的依赖库 ...

  3. 用python编写nao机器人舞蹈_python控制nao机器人身体动作实例详解

    python控制nao机器人身体动作实例详解 发布时间:2020-10-23 09:18:22 来源:脚本之家 阅读:89 本文实例为大家分享了python控制nao机器人身体动作的具体代码,供大家参 ...

  4. python解析二维码_Python二维码生成识别实例详解

    前言 在 JavaWeb 开发中,一般使用 Zxing 来生成和识别二维码,但是,Zxing 的识别有点差强人意,不少相对模糊的二维码识别率很低.不过就最新版本的测试来说,识别率有了现显著提高. 对比 ...

  5. python format函数实例_python中强大的format函数实例详解

    python中format函数用于字符串的格式化 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串. 语法 它通过{}和:来代替%. 请看下 ...

  6. python控制nao机器人_python控制nao机器人身体动作实例详解

    本文实例为大家分享了python控制nao机器人身体动作的具体代码,供大家参考,具体内容如下 今天读的代码,顺便写了出来,与文档的对比,差不多. import sys import motion im ...

  7. python教程三角函数_Python入门之三角函数tan()函数实例详解

    描述 tan() 返回x弧度的正弦值. 语法 以下是 tan() 方法的语法: import math math.tan(x) 注意:tan()是不能直接访问的,需要导入 math 模块,然后通过 m ...

  8. python的对象数组_Python当中的array数组对象实例详解

    计算机为数组分配一段连续的内存,从而支持对数组随机访问: 由于项的地址在编号上是连续的,数组某一项的地址可以通过将两个值相加得出,即将数组的基本地址和项的偏移地址相加. 数组的基本地址就是数组的第一项 ...

  9. python算术运算符详解_Python中关于算术运算符的实例详解

    这篇文章主要介绍了Python算术运算符实例详解的相关资料,需要的朋友可以参考下 Python算术运算符 以下假设变量a为10,变量b为20: 运算符 描述 实例 + 加 - 两个对象相加 a + b ...

  10. python基础语法手册format-python的格式化输出(format,%)实例详解

    皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问 ...

最新文章

  1. android c/c++ eclipse 绿色版 环境的配置
  2. LM393,LM741可以用作电压跟随器吗?
  3. 行代码实现数据集可视化、分析与比较
  4. Banner 自动无限轮播(普通)
  5. lambda显式声明返回值
  6. php获取站点的根目录和站点的根URL
  7. 剑指offer 面试题59 - II. 队列的最大值
  8. 应聘c语言面试试题,c语言面试最必考的十道试题,求职必看!!!
  9. Spring Cloud-honghu Cloud分布式微服务云系统--云架构代码结构构建
  10. 制作的LINUX安装软件,竟然导致系统无法启动
  11. Python获取本机ip地址的两种有效方法
  12. 【第42期】游戏策划:如何让游戏帮助孩子成长?
  13. 苹果邮箱怎么登录qq邮箱_邮箱格式怎么写 电子邮箱格式怎么写
  14. 【TencentOS tiny学习】源码分析(6)——互斥锁
  15. 文件上传绕过安全狗WAF实战
  16. Geoserver2.11矢量切片与OL3中的调用展示
  17. (十二)幸福之家 - 1
  18. 【100%通过率】华为OD机试真题 Python 实现【核酸最快检测效率】【2022.11 Q4 新题】
  19. python读取股票数据_python2自动读取股票数据示例
  20. 【分布式系统】唯一ID生成策略总结

热门文章

  1. Linux执行fastqc报错Exception in thread “main“ java.awt.HeadlessException: No X11 DISPLAY variable was s
  2. HTML5 — 知识篇总结《II》【HTML5大力支持的语义化思想与规范】
  3. 解决jsp页面乱码问题
  4. Educational Codeforces Round 45 (Rated for Div. 2) G - GCD Counting
  5. 三方面搞定http协议之“请求方法”
  6. 代码编辑器[0] - Vim/gVim[1] - Vim 的快捷键操作
  7. 3.20计算机组成原理课堂笔记
  8. css 浮动 相对定位 绝对定位区别
  9. timequest静态时序分析学习笔记之命令约束
  10. html div重叠上方,html – 将父div上方的子div对齐到右边,不要重叠