
Python设计模式
设计模式
只想整天学习
基础不牢地动山摇
展开
-
【Python设计模式】观察者模式
设计模式中的观察者模式是我感到比较迷惑的一种模式,刚开始接触的时候看的不太懂,因为当时在学Qt,而Qt的信号与槽的机制就有点类似于观察者模式,但是Qt却不能完全体现,以至于我在这两者之间感到有些困惑,直到后来看了《大话设计模式》后有点了解——我真的是太喜欢这本书了,后来无意中看到这篇观察者模式文章感觉有点大彻大悟的感觉,虽然我学的是python,而博主用的是Java写的,但我认为语言其实并不是我...原创 2020-04-25 21:22:27 · 409 阅读 · 0 评论 -
【Python设计模式】钩子方法
在学习设计模式中的模板方法模式的时候了解到了一个比较陌生的名词——钩子方法,大概看了一下定义。钩子方法:一个钩子方法由一个抽象类或具体类声明并实现,而其子类可能会加以扩展。通常在父类中给出的实现是一个空实现(可使用virtual关键字将其定义为虚函数),并以该空实现作为方法的默认实现,当然钩子方法也可以提供一个非空的默认实现大概看懂了之后没有去深究,因为在编写代码的时候很少用到,也可能是代...原创 2020-04-18 20:03:00 · 1164 阅读 · 0 评论 -
【Python设计模式】建造者模式
建造者模式是为了在编写代码的时候防止我们有些方法忘记实现,例如我们要绘制一个人的图形,我们需要绘制头、身体、手和脚,可能我们在绘制的时候忘记给这个人画手了,建造者模式就是为了防止这种情况的发生而设计的,这种关系有点像是java中的接口类,子类必须实现接口中定义的所有方法,不然就会报错,通过这种方法,所有实现画人的类都必须实现画人的接口类中的方法,不会遗漏任何一个方法。这里参考了《大话设计模式》中...原创 2020-04-06 17:07:15 · 285 阅读 · 0 评论 -
【Python设计模式】模板方法模式
模板方法模式是一个比较容易理解的设计模式,用一个考试的例子来讲比较通俗易懂,我们考试的时候大家用的都是同一份试卷,只是是每个人做的答案有可能不一样,如果每个人都抄一份试卷那就要完蛋了,考试时间都放在抄试卷上了,如果老师把试卷写在黑板上,那么每个同学就只需要将答案交给老师就好了,从而节约了不少时间。首先来看《大话设计模式》中用C#写的例子,首先定义了试卷的题目和选项。然后学生做的答案,但是学生...原创 2020-03-28 21:28:02 · 284 阅读 · 0 评论 -
【Python设计模式】策略模式
用python写设计模式其实已经被简化了很多,如果有条件的话(熟悉Java/C#)我还是会计较倾向于用其他非解释型语言来熟悉设计模式,但是没办法,Java只懂皮毛,看了《大话设计模式》后对策略模式有了一个比较清晰的了解,在这里记录一下加深印象。策略模式主要思想是将算法封装成一个个独立的类,从而实现复用和方便维护。首先创建一个抽象的算法接口类,python中可以用@abstractmethod抽...原创 2020-03-28 13:33:57 · 344 阅读 · 0 评论 -
【Python设计模式】代理模式
最近看《大话设计模式》这本书感触很深,之前也有看过LoveLion博主写的设计模式的导读,两者都写得非常好,《大话设计模式》一书主要是以C#编写的,而LoveLion博主写的是以Java编程为主,还好之前有看过C++和C#语法的书籍,所以看《大话设计模式》的时候比较轻松,理解起来也比较容易,Java也有在大学的时候开过课,也能看懂,但是个人感觉大话设计模式这本书更通俗一些,LoveLoin博主写的...原创 2020-03-27 21:01:14 · 264 阅读 · 0 评论 -
【Python设计模式】new方法与单例模式
在网上看了很多关于__new__()魔法方法的教程,毫无疑问大部分都是单例模式相关,确实如此,利用__new__()魔法方法的特性,在Python中很容易实现单例模式。在面向对象编程的语言中,很多语言都有一个构造函数,例如Java和C++,在Python中也存在一个构造函数__init__(),不过在python中叫做魔法方法,在类实例化的时候初始化类成员变量。运行下面的程序将会打印init字符...原创 2020-03-08 17:22:52 · 419 阅读 · 0 评论 -
【Python设计模式】简单工厂模式(字典实现)
工厂模式(工厂方法模式)是我们程序设计中比较经常使用的一种模式,为什么叫工厂模式,因为它的核心思想就是像工厂生产一样,我们只需要往工厂中输入原材料而不用管工厂是如何生产的,最终得到我们想要的产品,例如一个榨汁机,我们放入一个橙子榨出来的是一杯橙汁,放入一个苹果榨出来的就是一杯苹果汁。在程序设计中就类似于下面的代码。可能在没有学设计模式的时候我们就用过这种方法,但是我们却不知道这其实就是简单工厂方...原创 2020-03-08 13:00:07 · 542 阅读 · 0 评论 -
【Python设计模式】工厂模式
引自《精通Python设计模式》 一书 简单工厂模式 import xml.etree.ElementTree as etreeimport json'''json类'''class JSONConnector: def __init__(self, filepath): self.data = dict() with open(fil...原创 2019-12-17 11:38:48 · 345 阅读 · 0 评论