python 单例模式 工厂模式_技术篇-每日一篇0x5-python工厂模式

前面介绍过单例模式,单例模式的思想就是一个对象只有一个实例,当你想创建多个实例的时候也只会返回已存在的实例,并不会给你再次创建,这个会解决大量的实例常见和gc回收带来的消耗。不需要的额外的频繁操作。

今天来说一说工厂模式。既然是工厂,那么干的事情就会很多了,而且效率高,我们要维护一个工厂如果干事不利索那还办啥工厂,你说是不是,早就倒闭了。。。。。

说的闲话有点多了,开始工厂模式的介绍,通过举例来说明并给出代码。

博主最近开始做饼干服务了,通过广泛宣传接到一些单子:

广东地区需要制造一些圆形饼干,江苏需要制造一些三角形饼干,四川地区需要一些矩阵形状的饼干

哎,这些单子真的是各不相同,心中千万个曹尼玛,不过为了毛爷爷还是撸起袖子让厂房的机器开始干这些活。

class circle(object):

def __init__(self,data=''):

self.source=data

@staticmethod

def make_circle(data):

return '1'

def product(self):

return self.make_circle(self.source)

class triangle(object):

def __init__(self,data=''):

self.source=data

@staticmethod

def make_triangle(data):

return '2'

def product(self):

return self.make_triangle(self.source)

class rectangle(object):

def __init__(self,data=''):

self.source=data

@staticmethod

def make_rectangle(data):

return '3'

def product(self):

return self.make_rectangle(self.source)

def product(location):

loc={'guangdong':circle,'jiangsu':triangle,'sichuan':rectangle}

return loc[location]().product()

print product('jiangsu')

print product('guangdong')

print product('sichuan')

运行结果如下所示

PS C:\Users\boostcj\Desktop> python .\Untitled-1.py

2

1

3

通过上面博主建立的工厂只要给定需要饼干的地方位置信息,就可以自动生产出对应的饼干,哈哈,这是多么的方便,以后如果有其他需要直接增量式开发就好了,一切都是这么so easy

上面是一个简单的工厂模式,此外还有一个稍微难以理解的抽象工厂模式,其实抽象工厂模式是可以完成更多的任务。博主的业务目前就是局限于饼干这一块,博主的业务做大了,挣钱多了,开始拓展新业务

现在开始包装水果了,就是在原来的基础上增加生产水果的功能,其实道理还是很简单的,假设广东地方的人喜欢吃苹果,我们在生产广东圆形饼干的时候顺道也要生产苹果,就是这么理解。

你可能感兴趣的:(python,单例模式,工厂模式)