码迷,mamicode.com
首页 > 其他好文 > 详细

工厂模式

时间:2019-05-09 11:01:40      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:开始   create   生成   环境   根据   sel   调用   pre   self   

官方定义:在工厂设计模式中,客户端可以请求一个对象,而无需知道这个对象来自哪里,也就是使用哪个类来生成这个对象

大白话:我不用管这东西怎样来,我只知道有这东西,我就可以得到

 

通过模拟真实环境还原工厂模式,本案例模拟手机店买手机的情况

 

今年小王新开了一间手机店,他的经营模式是这样的:有人买手机---->手机店利用机器制造手机---->交付给顾客

然后有了接下来的经营情况:

1、普通模式                                                

 

场景1:【小明】到手机店买苹果手机
       【手机店】开始【调用苹果机器】制造苹果
        手机店售卖这苹果手机给小明
场景2:【小东】到手机店买华为手机
       【手机店】开始【调用机器】制造华为手机
        手机店售卖这华为给小东

 

代码实现:

#-------------手机店-------------------------
class PhoneStore(object):
  #根据客户需求调用机器生产手机
def shellPhone(self,phone_type): if phone_type == "华为": return Hawei() elif phone_type == 苹果: return Iphone() elif phone_type == oppo: return Oppo()
#--------------制造手机的机器--------------------
def Hawei(): print(生产华为手机) def Iphone(): print(生产苹果手机) def Oppo(): print(生产oppo手机)
#----------------买手机-----------------------
if __name__ == __main__: store = PhoneStore() store.shellPhone(苹果)

 

小王手机店按照这种模式经营,时间久了,发现这种模式不行,每一次来一个人买手机,手机店就要制造一台手机,非常的麻烦;

想着如果手机交给工厂制造,手机店只需要一个电话就可以拿到手机,

工厂模式:有人买手机---->手机店联系工厂---->工厂制造手机并交给手机店---->手机店交付顾客

接下来手机店使用工厂模式试营:

 

2、工厂模式                                                

 

场景1:【小明】到手机店买苹果手机
           【手机店】联系工厂生产苹果手机
            【工厂】制造苹果手机并给手机店
             手机店把手机交给小明
    
场景2:【小东】到手机店买华为手机
           【手机店】联系工厂生产华为手机
            【工厂】制造华为手机并给手机店
             手机店把手机交给小东

 

代码实现:

#---------------手机店---------------------
class
PhoneStore(object): def __init__(self): self.factory = PhoneFactory() def sellPhone(self,phone_type): return self.factory.createPhone(phone_type)
#------------------工厂制造手机----------------------
class PhoneFactory: def createPhone(self,phone_type): if phone_type == "华为": return Hawei() elif phone_type == 苹果: return Iphone() elif phone_type == oppo: return Oppo()
#------------------机器---------------------------
def Hawei(): print(工厂生产华为手机) return 华为手机 def Iphone(): print(工厂生产苹果手机) return 苹果手机 def Oppo(): print(工厂生产oppo手机) return oppo手机
#-------------------买手机----------------------------- if __name__ == __main__: store = PhoneStore() phone = store.sellPhone(苹果) print(小明拿到的手机:%s %phone)

 

小王按照工厂模式经营一点时间,发现了这个模式有个好处就是,

当顾客购买手机,手机店可以不用管手机是怎样制造,只要联系厂家和交付就可以,一个字爽,感觉就是在做一个中间商,赚差价

                                       

 

工厂模式

标签:开始   create   生成   环境   根据   sel   调用   pre   self   

原文地址:https://www.cnblogs.com/tang-s/p/10836979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!