![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python设计模式
豆芽胡
这个作者很懒,什么都没留下…
展开
-
python开发中常用的设计模式(简单工厂模式)
原文取自大话设计模式,不同之处在于原文是基于C#编写的,我在这里用Python表述需求:使用python语言开发实现2个数相加减及扩展的计算器初学者代码如下:if __name__ == "__main__": print("请输入数字A:") a = input() print("请输入数字B:") b = input() print("请输...原创 2019-03-13 21:08:50 · 573 阅读 · 1 评论 -
python开发中常用的设计模式(策略-简单工厂模式)
原文取自大话设计模式,不同之处在于原文是基于C#编写的,这里用Python表述需求:使用python语言开发实现一个商场消费打折、优惠活动,保证其可扩展性初学者代码如下:# if __name__ == "__main__":# print("请输入打折折扣:")# a = input()# print("请输入总金额:")# price = ...原创 2019-03-18 20:21:43 · 1127 阅读 · 1 评论 -
python开发中常用的设计模式(单一职责原则)
原文取自大话设计模式,我这里将其长话短说。单一职责原则:对于一个类而言,应该仅有一个引起它变化的原因,如果有多个原因引起其变化,那么需要将该类进行拆分。通俗来讲,如果一个类承担的职责过多,就等于把这些职责耦合在一起,且其中一个职责的变化可能会削弱、或者抑制这个类完成其它职责的能力。从代码角度讲,一个类里面提供的功能(方法)如果过多,那么其中一个方法的改变,就可能会影响类中的其他方法的使...原创 2019-03-19 20:36:51 · 604 阅读 · 1 评论 -
python开发中常用的设计模式(开放—封闭原则)
原文取自大话设计模式,我这里将其长话短说。开放封闭原则:对于扩展是开放的,对于更改是封闭的。作为程序员,进行软件开发时,不要指望需求不会变更,而是要考虑需求改变时如何不让代码推倒重来。上面的更改指的是我们开发中创建的类、模块、函数等。进行软件开发设计时,要预先猜测出可能的更改,将其可变化的代码抽象出来(例如之前开发的计算器,我们就将其运算模块抽象出来,以应对将来可能产生的变化)...原创 2019-03-20 21:11:47 · 666 阅读 · 0 评论 -
python开发中常用的设计模式(依赖倒转原则)
软件开发设计中经常听到的一个词就是:强内聚、松耦合所谓强内聚、松耦合就是所谓的依赖倒转。依赖倒转的原文解释为:高层模块和低层模块都应该依赖抽象,不应该依赖于细节(实现)。抽象不应该依赖细节(实现),细节(实现)应该依赖抽象。原文用大白话来讲就是:针对接口编程,而不是针对实现编程。例如我们的台式机电脑,它包含CPU、硬盘、主板、内存、显卡、电源、散热器、U盘等。当台式机中的任...原创 2019-03-25 20:26:58 · 846 阅读 · 0 评论 -
python开发中常用的设计模式(里氏替换原则)
里氏替换原则:一个软件实体如果使用的是一个父类的话,那么他一定适用于其子类。用代码来讲就是:如果程序中的某段代码调用了某个父类对象,那么将这个父类替换为其子类,则程序的行为应该没有变化。即:子类型必须能够替换掉他们的父类型。比如:定义一个父类鸟类,该父类下面有多个子类,包含麻雀类、鸳鸯类、天鹅类等等。假设鸟类里面有个独一无二的方法,fly()方法,那么其所有的子类都应该有fly...原创 2019-03-25 20:55:53 · 861 阅读 · 0 评论 -
python开发中常用的设计模式(代理模式)
代理模式:为其他对象提供一种代理以控制对这个的访问。原文取自大话设计模式,这里将其转为python代码!需求:张三通过李四给美女娇娇送鲜花!下面的代码是不通过代理的方式,张三直接给娇娇送鲜花!# 追求者类class Pursuit(): name=None mm=None def __init__(self,name,mm): self....原创 2019-04-15 21:12:58 · 265 阅读 · 0 评论 -
python开发中常用的设计模式(装饰者模式)
原文取自大话设计模式,这里将其改为python代码进行实现需求:现有一个用户,实现其穿衣服、穿裤子、打领带的功能,并保证其扩展性。# 菜鸟代码class Person(): name = "" def __init__(self, name): self.name = name def WearTShirts(self): ...原创 2019-04-03 15:58:32 · 374 阅读 · 0 评论