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

4,308次阅读
没有评论

共计 1314 个字符,预计需要花费 4 分钟才能阅读完成。

技术篇-每日一篇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

上面是一个简单的工厂模式,此外还有一个稍微难以理解的抽象工厂模式,其实抽象工厂模式是可以完成更多的任务。博主的业务目前就是局限于饼干这一块,博主的业务做大了,挣钱多了,开始拓展新业务
现在开始包装水果了,就是在原来的基础上增加生产水果的功能,其实道理还是很简单的,假设广东地方的人喜欢吃苹果,我们在生产广东圆形饼干的时候顺道也要生产苹果,就是这么理解。

正文完
请博主喝杯咖啡吧!
post-qrcode
 
admin
版权声明:本站原创文章,由 admin 2018-03-25发表,共计1314字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码