Python设计模式之工厂模式
2018-03-31 23:25
357 查看
1,什么是工厂模式
工厂模式是软件开发过程中用来创建对象的一种设计模式。工厂类方法通过传入不同的参数,并将参数作为对应类的构造方法的参数,来创建对应的类
2,为什么使用工厂模式
当程序运行输入一个“类型”的时候,需要创建于此相应的对象。这就用到了工厂模式。在如此情形中,实现代码基于工厂模式,可以达到可扩展,可维护的代码。当增加一个新的类型,不在需要修改已存在的类,只增加能够产生新类型的子类。
3,工厂模式的使用场景
1. 不知道用户想要创建什么样的对象
2. 需要根据参数来创建指定实例对象
4,工厂模式举例
有一个基类Person,构造函数中包含name,sex;两个子类分别为Famle和Male,有打招呼的方法;有一个工厂类Factory,getPerson方法有两个参数name和sex;
用户创建工厂类的对象,调用getPerson方法,通过传入的参数sex程序决定创建哪个类的对象
代码如下:
#coding=utf-8
class Person(object):
def __init__(self,name,sex):
self.name=name
self.sex=sex
class Male(Person):
def say_hello(self):
print'hello,I am %s' %self.name
class Female(Person):
def say_hello(self):
print'hello,I am mises %s' %self.name
class Male(Person):
def say_hello(self):
print'hello,I am miss %s' %self.name
class Factory():
def getPerson(self,name,sex):
if sex=='f':
returnFemale(name,sex)
elif sex=='m':
returnMale(name,sex)
if __name__=='__main__':
f=Factory()
girl=f.getPerson('西施','f')
girl.say_hello()
boy=f.getPerson('吕布','m')
boy.say_hello()
执行结果:
hello,I am mises 西施
hello,I am miss 吕布
工厂模式是软件开发过程中用来创建对象的一种设计模式。工厂类方法通过传入不同的参数,并将参数作为对应类的构造方法的参数,来创建对应的类
2,为什么使用工厂模式
当程序运行输入一个“类型”的时候,需要创建于此相应的对象。这就用到了工厂模式。在如此情形中,实现代码基于工厂模式,可以达到可扩展,可维护的代码。当增加一个新的类型,不在需要修改已存在的类,只增加能够产生新类型的子类。
3,工厂模式的使用场景
1. 不知道用户想要创建什么样的对象
2. 需要根据参数来创建指定实例对象
4,工厂模式举例
有一个基类Person,构造函数中包含name,sex;两个子类分别为Famle和Male,有打招呼的方法;有一个工厂类Factory,getPerson方法有两个参数name和sex;
用户创建工厂类的对象,调用getPerson方法,通过传入的参数sex程序决定创建哪个类的对象
代码如下:
#coding=utf-8
class Person(object):
def __init__(self,name,sex):
self.name=name
self.sex=sex
class Male(Person):
def say_hello(self):
print'hello,I am %s' %self.name
class Female(Person):
def say_hello(self):
print'hello,I am mises %s' %self.name
class Male(Person):
def say_hello(self):
print'hello,I am miss %s' %self.name
class Factory():
def getPerson(self,name,sex):
if sex=='f':
returnFemale(name,sex)
elif sex=='m':
returnMale(name,sex)
if __name__=='__main__':
f=Factory()
girl=f.getPerson('西施','f')
girl.say_hello()
boy=f.getPerson('吕布','m')
boy.say_hello()
执行结果:
hello,I am mises 西施
hello,I am miss 吕布
相关文章推荐
- Python 设计模式 --抽象工厂设计模式
- 翻译-精通python设计模式-工厂模式
- Python设计模式--工厂模式
- Python的创建型设计模式之工厂设计模式
- 23种设计模式之python实现--抽象工厂
- 翻译-精通python设计模式-工厂模式
- python实现的工厂方法--设计模式初级
- Python: 设计模式 之 工厂模式例(2)(神奇的Python)
- 6、python设计模式之工厂模式
- PYTHON设计模式,创建型之工厂方法模式
- [Design Pattern]Python设计模式——工厂方法
- python设计模式之工厂模式
- python设计模式(一)--简单工厂(中)
- 实例讲解Python设计模式编程之工厂方法模式的使用
- 设计模式(Python)-简单工厂,工厂方法和抽象工厂模式
- python设计模式——工厂方法
- python设计模式(一)--简单工厂(上)
- Python设计模式之工厂模式
- Python3 设计模式_工厂模式
- python设计模式 之 简单工厂模式