设计模式-python
文章平均质量分 71
f2boy
f2是犯二还是重命名
展开
-
Python实现设计模式之写在前面
岁月无痕,年近中年,时常感到迷茫。生于89年,做it开发已经七八年,却总困惑未来,关于人生、关于羁绊……每每有杂乱思绪,又不曾记录下,哀叹时光流逝,总要留下些什么。原创 2017-07-18 23:21:41 · 253 阅读 · 0 评论 -
Python实现设计模式--09.命令模式(Command Pattern)
命令模式是将一次完整的业务处理拆成了提出业务和处理业务两部分,这个模式把提出业务称为发起命令,处理业务称为执行命令。同时,提出业务与处理业务的解耦,暗含着一种异步的思想。“命令”一词,听起来很拽的感觉,调用方(Invoker)只管发起命令(Command),不参与命令如何被执行(Receiver)。既然这么拽,我们就拿皇帝的圣旨来做例子好了。首先,我们看下UML图:等等,这是不是与书上和...原创 2018-08-13 22:29:06 · 405 阅读 · 1 评论 -
Python实现设计模式--08.中介者模式(Mediator Pattern)
中介者模式就像代理模式的高级版,代理模式只代理一方,而中介者代理两方或者更多的角色。场景案例:公司的3个部门:销售、采购、库存相互协作,他们之间有如下约定:销售部门的成绩决定是否要采购库存不足的情况下,销售部门停止销售,采购部门尽快采购库存挤压,通知采购部门停止采购,销售部门打折出售这里看到3者之间都是相互联系的,如果用通常的做法定义3个类,会发现他们之间耦合非常大。读者有原创 2018-07-13 00:12:52 · 462 阅读 · 0 评论 -
Python实现设计模式--07.原型模式(Prototype Pattern)
原型模式实质上就是复制对象,省去了创建对象、复制属性的过程,从性能方面考虑,复制对象也比创建对象高效。原创 2017-08-31 00:57:43 · 608 阅读 · 0 评论 -
Python实现设计模式--06.代理模式(Proxy Pattern)
代理模式完全解耦了调用方和被调用方之前的联系,在某些场合非常有用!原创 2017-08-29 23:26:25 · 884 阅读 · 0 评论 -
Python实现设计模式--02.工厂模式(Factory Pattern)
《设计模式》涉及到创建类的几种模式,共同的也是最根本的原则就是:不要new 对象!!!既然如此,告诉我你最先想到的是如何得到对象呢?没错,“你不让我new,那你给我个get对象的工具吧,别的我不管”。这就是工厂模式,工厂模式是一种简单又实用的模式,在各大框架到处可见,比如Java世界大名鼎鼎的spring,其本身就是一个大工厂。工厂模式中,工厂的作用是解耦调用者和被调用者的关系,工厂模式又分为工厂方法模式和简单工厂模式。原创 2017-07-26 00:36:34 · 6122 阅读 · 1 评论 -
Python实现设计模式--04.模版方法模式(Template Method Pattern)
模版方法模式是设计模式中比较好理解的一种模式,原创 2017-08-01 21:55:14 · 499 阅读 · 0 评论 -
Python实现设计模式--05.建造者模式(Builder Pattern)
建造者模式是一种创建类的模式,它尽可能的保证代码的复用性,而且可读性也非常好(最终产生的对象对用户是透明的)。原创 2017-08-03 23:14:15 · 763 阅读 · 0 评论 -
Python实现设计模式--03.抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式和工厂方法模式的区别是,后者一个工厂只生产一种产品,而前者是一个工厂可以生产多个产品。当然,这些产品之间是要有联系的,它们通常是一个整体产品的一部分,由工厂造出后再组装成一个完整的产品。网上经常用造汽车来做例子:车间A生产车身、车间B生产车门、车间C生产轮子,工厂造出它们后,就得到一部完整的汽车了。抽象工厂模式的好处是将产品类拆分为不同的子类,尽量去满足单一职责原则,同时,又将它们原创 2017-07-31 23:06:10 · 804 阅读 · 0 评论 -
Python实现设计模式--01.单例模式(Singleton Pattern)
1、基于模块引用(饱汉模式)建立文件Emperor_Singleton.py,内容如下:# 皇帝类class Emperor(object): def say(self): print('我是唯一的皇帝!')emperor = Emperor()测试内容如下:from singleton.Emperor_Singleton import emper原创 2017-07-19 08:10:26 · 805 阅读 · 0 评论 -
Python实现设计模式--10.责任链模式(Chain of Responsibility Pattern)
责任链模式比较好理解,这里以域名解析为例说明一下。我们知道域名解析(也即DNS解析)是由近到远逐级进行的,它一般会经过如下几个步骤:查找本地hosts文件,若有,则返回,没有,则下一步 查找本地DNS服务器(路由器),若有,则返回,没有,则下一步 查找区域内的DNS服务器(如深圳),若有,则返回,没有,则下一步 ……就这样一级一级,直到能解析出ip为止。按照这个思路我们去实现它,先...原创 2018-12-30 23:38:22 · 338 阅读 · 0 评论