python工厂模式_python实现工厂模式

我们有一个基类Person,包含方法get_name和get_gender 。有两个子类Male 和Female,构造函数可以打招呼。还有一个工厂类。工厂类有一个方法名get_person有两个输入参数,名字和性别。

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

在程序运行期间,用户通过性别传递来决定实例为Male还是Female。

class Person:

name = None

gender = None

def __init__(self):

pass

def get_name(self):

return self.name

def get_gender(self):

return self.gender

class Male(Person):

def __init__(self, name):

super(Male).__init__()

self.gender = "Male"

self.name = name

print("Hello Mr.{}".format(name))

class Female(Person):

def __init__(self, name):

super(Female).__init__()

self.gender = "Female"

self.name = name

print("Hello Miss.{}".format(name))

class Factory:

def get_person(self, name, gender):

if gender == "M":

return Male(name)

elif gender == "F":

return Female(name)

else:

raise Exception("please input 'M' or 'F'")

GENDER = "F"

if __name__ == '__main__':

factory = Factory()

person = factory.get_person("Lee", GENDER)

print(person.get_name())

print(person.get_gender())

输出:

Hello Miss.Lee

Lee

Female

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值