美文网首页
2018-10-07 Python19 简单工厂模式、工厂方法模

2018-10-07 Python19 简单工厂模式、工厂方法模

作者: 孟圆的笔记 | 来源:发表于2018-10-07 22:41 被阅读0次

通过增加一个类(工厂类),使得两个类(两部分代码)解耦,就叫做简单工厂设计模式。
基类中定义接口,子类中重写实现,叫做工厂方法模式。

  1 class Store(object):     #店铺-基类
  2     def select_type(self):  #接口
  3         pass
  4     def order(self, car_type):
  5         return self.select_type(car_type)
  6 
  7 class XDStore(Store):             #现代4S店
  8     def select_type(self, car_type):  #实现
  9         return XDFactory().select_car_by_type(car_type)
 10 class BMWStore(Store):             #宝马4S店
 11     def select_type(self, car_type):  #实现
 12         return BMWFactory().select_car_by_type(car_type)
 13 
 14 
 15 class BMWFactory(object):      #宝马车工厂
 16     def select_car_by_type(self, car_type):
 17         pass
 18         '''
 19         if car_type=="mini":
 20             return Mini()
 21         elif car_type=="720li":
 22             return Li720()
 23         elif car_type=="X6":
 24             return X6()
 25         '''
 26 
 27 class XDFactory(object):      #现代车工厂
 28     def select_car_by_type(self, car_type):
 29         if car_type=="索纳塔":
 30             return Suonata()
 31         elif car_type=="名图":
 32             return Mingtu()
 33         elif car_type=="ix35":
 34             return Ix35()
 35 
 36 
 37 class Car(object):     #车-基类
 38     def move(self):
 39         print("%s 在移动...."%self.name)
 40     def music(self):
 41         print("%s 正在播放音乐...."%self.name)
 42     def stop(self):
 43         print("%s 在停止...."%self.name)
 44 
 45 class Suonata(Car):
 46     def __init__(self):
 47         self.name = "索纳塔"
 48 
 49 class Mingtu(Car):
 50     def __init__(self):
 51         self.name = "名图"
 52 
 53 class Ix35(Car):
 54     def __init__(self):
 55         self.name = "Ix35"
 56 
 57 
 58 xd_store = XDStore()
 59 car = xd_store.order("索纳塔")
 60 car.move()

运行:

索纳塔 在移动....

相关文章

  • 2018-10-07 Python19 简单工厂模式、工厂方法模

    通过增加一个类(工厂类),使得两个类(两部分代码)解耦,就叫做简单工厂设计模式。基类中定义接口,子类中重写实现,叫...

  • 设计模式 —— 简单工厂模式

    概念 简单工厂模式又称之为静态工厂方法(Static Factory Method), 属于创建型模式。简单工厂模...

  • 简单工厂模式和工厂方法模式的区别

    在设计模式中,工厂模式是用的比较多的一种模式,工厂模式一般可分为”简单工厂”、”工厂方法”、“抽象工厂方法”模式模...

  • 工厂模式

    工厂模式介绍 工厂模式是创建型设计模式之一。工厂方法模式是一种结构简单的模式,在平时开发中应用很广泛。 工厂方法模...

  • 设计模式之死磕抽象工厂模式(原创)

    之前提到过工厂模式仔细区分的话分为三种,分别是简单工厂模式、工厂方法模式以及抽象工厂模式。在上面已经介绍完了工厂模...

  • 设计模式学习--简单工厂模式

    模式定义 又称静态工厂方法模式,它属于创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模...

  • 设计模式-3种工厂模式

    工厂模式包括:简单工厂模式,工厂方法模式,抽象工厂模式 简单工厂模式 工厂方法根据参数直接创建实例:工厂->产品 ...

  • 常见设计模式

    简单工厂 工厂方法 抽象工厂 单例模式 策略模式 观察者模式 责任链模式 装饰者模式 适配器模式 代理模式 门面模...

  • 工厂模式

    心得:说白了工厂模式就是集中管理其它类示例的场所,根据是否满足开闭原则分为简单工厂模式和(工厂方法模式,抽象工厂模...

  • 设计模式详解之工厂模式

    工厂模式顾名思义,工厂就是用来统一创建产品的。我们的工厂根据产品是具体产品还是工厂可以分为简单工厂模式和工厂方法模...

网友评论

      本文标题:2018-10-07 Python19 简单工厂模式、工厂方法模

      本文链接:https://www.haomeiwen.com/subject/hgbraftx.html