![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python设计模式
AllardZhao
学习的练习生,晓康。Python和Go语言追随者,喜欢学一些新技术,关注新技术发展动态。不断前进拥抱变化,永远确定的就是不确定。
展开
-
设计模式分为三大类即创建型、结构型、行为型
1.常见创建型设计模式(重点单例模式和工厂模式)工厂模式(Factory):解决对象创建问题构建者模式(Builder):控制复杂对象的创建原型模式(Prototype):通过原型的克隆创建新的实例单例模式(Borg / Singleton):一个类只能创建同一个对象对象池模式(Pool):预先分配同一类型的一组实例惰性计算模式(Lazy Evalution):延迟计算(p...原创 2019-07-29 12:02:32 · 1618 阅读 · 0 评论 -
创建型模式之工厂模式与构建者模式---Python代码演示详解
1.什么是工厂模式(Factory)解决对象的创建问题(对象创建的一个工厂)解耦对象的创建和使用包括工厂方法和抽象工厂工厂模式会返回一个实例# 一个工厂方法的例子class DogToy: # 狗玩具类 def speak(self): print("wang wang")class CatToy: # 猫玩具类 def...原创 2019-07-29 12:17:49 · 176 阅读 · 0 评论 -
创建型模式之单例模式与原型模式---Python代码演示详解
1.单例模式单例模式的实现有多种方式单例模式:一个类创建出来的对象都是同一个Python的模块其实就是单例的,只会导入一次,如:在模块里定义的全局变量其实就是单例的使用共享同一个实例的方式来创建单例模式(1)使用__new__方法实现# 使用__new__方法,通过共享实例方式创建单例模式class Singleton: # 单例的类 def __new__(...原创 2019-07-29 12:24:13 · 205 阅读 · 0 评论 -
结构型模式之代理模式与适配器模式---Python代码演示详解
1.什么是代理模式(Proxy)把一个对象的操作代理到另一个对象如:实现的 Stack/Queue,把操作代理到 deque通常使用 has-a 组合关系from collections import deque class Stack(object): # 通过 _deque 代理使用 deque中的方法 def __init__(self): ...原创 2019-07-29 12:30:16 · 177 阅读 · 0 评论 -
行为型模式之迭代器模式---Python代码演示详解
1.迭代器模式(Iterator)Python内置对迭代器模式支持比如我们可以用 for 遍历各种 Iterable(可迭代对象) 的数据类型Python里可以实现 __next__ 和 __iter__ 实现迭代器,如果是可迭代对象只要实现 __iter__就行如何让一个对象可迭代from collections import deque class Stack(obj...原创 2019-07-29 12:34:43 · 166 阅读 · 0 评论 -
行为型模式之观察者模式---Python代码演示详解
1.观察者模式发布订阅是一种最常见的实现方式发布订阅用于解耦逻辑可以通过回调等方式实现,当发生事件时,调用相应的回调函数# 发布订阅模式,通过在发布者里面加入订阅者,并通过订阅者的回调实现class Publisher: # 发布者 def __init__(self): self.observers = [] # 初始化观察者为空列表 ...原创 2019-07-29 12:37:32 · 233 阅读 · 0 评论 -
行为型模式之策略模式---Python代码演示详解
1.策略模式(Strategy)根据不同的输入规模采用不同的策略比如: 买东西超过10个打八折,超过20个打七折对外暴露统一的接口,内部采用不同的策略计算# 策略模式class Order: # 订单类,根据订单的个数,来去决定哪种折购策略 def __init__(self, price, discount_strategy=None): sel...原创 2019-07-29 12:39:08 · 210 阅读 · 0 评论 -
结构型模式之 MVC模式 和 ORM
1.什么是 MVC模式? MVC:模型(Model),视图(View),控制器(Controller) mvc出现的意义就是解耦,比如::模型代表数据,视图代表展示层,控制器代表操作,解耦数据、展示和操作。Model:负责业务对象和数据库的交互(ORM)。数据模型层,通常对数据加工和一些其它处理 ( 数据相关操作 )。View:负责与用户的交互展示。视图层,跟用户交互的...原创 2019-08-13 12:04:14 · 1098 阅读 · 0 评论