Python设计模式-简单工厂
2021/10/4 20:41:00
本文主要是介绍Python设计模式-简单工厂,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
首先声明:此文档出处为以下:
版权声明:本文为CSDN博主「Burgess_zheng」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Burgess_zheng/article/details/86762248
urgess_zheng/article/details/86762248
由于我是新手,为了便于自己理解面向对象,做了一些删改(主要是爱人的协助)
__author__ = "Burgess Zheng" ''' simple Factory Method ''' class Shape(): a = 1#父类属性 ''' 父类;init可以没有,init用来初始化对象 比如想要个桌子,需用init来定义桌子的长度宽度高度来设置属性 创建对象的时候,需要对 对象进行初始化操作的时候,需要在类里面定义init方法 比如创建对象的时候,会传一些实参进去,这样就需要对 创建对象的类 定义init方法 比如形状就是个形状,没有附加的东西,调用的时候不会传入任何实参!所以不需要init ''' def draw(self): raise NotImplementedError #这个语句里面定义的什么也没做,需要继承这个类的子类重写draw方法并实现 #含有这种raise NotImplementedError语句的方法的类,就是抽象类 class Circle(Shape): ''' Shape子类,继承并且重写draw方法 ''' def draw(self): print('draw circle')#重写父类draw方法,如果不重写就会 #引发父类的raise notinplemetedError错误 class Rectangle(Shape): ''' Shape的子类,继承并且重写draw方法 ''' def draw(self): print('draw Rectangle') class ShapeFactory():#创建对象的接口 ''' 工厂模式:暴露给用户去调用的, 用户可通过该类进行选择Shape的子类进行实例化 ''' def create(self, shape):#这个shape是个形参,不是属性!类似函数的形参 if shape == 'Circle': return Circle()#返回一个对象 elif shape == 'Rectangle': return Rectangle() else: return None fac = ShapeFactory() #工厂类生成的对象,就是一个具体的工厂 #比如形状就是个形状,没有附加的东西,调用的时候不会传入任何实参!所以不需要init obj = fac.create('Circle') #用'circle'返回一个Circle()类 for i in range(10): a_circle = fac.create('Circle') a_circle.draw()#批量生产产品:Circle;只需要指导抽象类有什么方法,子类肯定有这个方法。然后去调用 print(a_circle.a)#子类继承父类的属性并且自动继承 #然后调用circle这个子类的方法 #简单工厂方法:把生成对象的动作和对象自身属性等细节 解耦;
UML图如下:
这篇关于Python设计模式-简单工厂的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享