python工厂模式看不懂_python模式 工厂模式原理及实例详解
这篇文章主要介绍了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模式 工厂模式原理及实例详解相关推荐
- python字符串strip的作用_Python字符串函数strip()原理及用法详解
Python字符串函数strip()原理及用法详解 strip:用于移除字符串头尾指定的字符(默认为空格)或字符序列.注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符. 语法:str.s ...
- python生成二维码_python生成二维码的实例详解
python生成二维码的实例详解 版本相关 操作系统:Mac OS X EI Caption Python版本:2.7 IDE:Sublime Text 3 依赖库 Python生成二维码需要的依赖库 ...
- 用python编写nao机器人舞蹈_python控制nao机器人身体动作实例详解
python控制nao机器人身体动作实例详解 发布时间:2020-10-23 09:18:22 来源:脚本之家 阅读:89 本文实例为大家分享了python控制nao机器人身体动作的具体代码,供大家参 ...
- python解析二维码_Python二维码生成识别实例详解
前言 在 JavaWeb 开发中,一般使用 Zxing 来生成和识别二维码,但是,Zxing 的识别有点差强人意,不少相对模糊的二维码识别率很低.不过就最新版本的测试来说,识别率有了现显著提高. 对比 ...
- python format函数实例_python中强大的format函数实例详解
python中format函数用于字符串的格式化 自python2.6开始,新增了一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串. 语法 它通过{}和:来代替%. 请看下 ...
- python控制nao机器人_python控制nao机器人身体动作实例详解
本文实例为大家分享了python控制nao机器人身体动作的具体代码,供大家参考,具体内容如下 今天读的代码,顺便写了出来,与文档的对比,差不多. import sys import motion im ...
- python教程三角函数_Python入门之三角函数tan()函数实例详解
描述 tan() 返回x弧度的正弦值. 语法 以下是 tan() 方法的语法: import math math.tan(x) 注意:tan()是不能直接访问的,需要导入 math 模块,然后通过 m ...
- python的对象数组_Python当中的array数组对象实例详解
计算机为数组分配一段连续的内存,从而支持对数组随机访问: 由于项的地址在编号上是连续的,数组某一项的地址可以通过将两个值相加得出,即将数组的基本地址和项的偏移地址相加. 数组的基本地址就是数组的第一项 ...
- python算术运算符详解_Python中关于算术运算符的实例详解
这篇文章主要介绍了Python算术运算符实例详解的相关资料,需要的朋友可以参考下 Python算术运算符 以下假设变量a为10,变量b为20: 运算符 描述 实例 + 加 - 两个对象相加 a + b ...
- python基础语法手册format-python的格式化输出(format,%)实例详解
皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问 ...
最新文章
- android c/c++ eclipse 绿色版 环境的配置
- LM393,LM741可以用作电压跟随器吗?
- 行代码实现数据集可视化、分析与比较
- Banner 自动无限轮播(普通)
- lambda显式声明返回值
- php获取站点的根目录和站点的根URL
- 剑指offer 面试题59 - II. 队列的最大值
- 应聘c语言面试试题,c语言面试最必考的十道试题,求职必看!!!
- Spring Cloud-honghu Cloud分布式微服务云系统--云架构代码结构构建
- 制作的LINUX安装软件,竟然导致系统无法启动
- Python获取本机ip地址的两种有效方法
- 【第42期】游戏策划:如何让游戏帮助孩子成长?
- 苹果邮箱怎么登录qq邮箱_邮箱格式怎么写 电子邮箱格式怎么写
- 【TencentOS tiny学习】源码分析(6)——互斥锁
- 文件上传绕过安全狗WAF实战
- Geoserver2.11矢量切片与OL3中的调用展示
- (十二)幸福之家 - 1
- 【100%通过率】华为OD机试真题 Python 实现【核酸最快检测效率】【2022.11 Q4 新题】
- python读取股票数据_python2自动读取股票数据示例
- 【分布式系统】唯一ID生成策略总结
热门文章
- Linux执行fastqc报错Exception in thread “main“ java.awt.HeadlessException: No X11 DISPLAY variable was s
- HTML5 — 知识篇总结《II》【HTML5大力支持的语义化思想与规范】
- 解决jsp页面乱码问题
- Educational Codeforces Round 45 (Rated for Div. 2) G - GCD Counting
- 三方面搞定http协议之“请求方法”
- 代码编辑器[0] - Vim/gVim[1] - Vim 的快捷键操作
- 3.20计算机组成原理课堂笔记
- css 浮动 相对定位 绝对定位区别
- timequest静态时序分析学习笔记之命令约束
- html div重叠上方,html – 将父div上方的子div对齐到右边,不要重叠