摘要:
# 回调模式:把函数作为参数,传递给另一个函数,延迟到另一个函数的某个时刻执行的过程叫回调。 # 缺点:回调地狱 # 面向过程的实现方式 def callback(*args, **kwargs): """回调函数""" # TODO 函数体的实现 pass def otherFunc(func. 阅读全文
摘要:
from abc import ABCMeta, abstractmethod # 解释器模式:定义一个语言,定义它的文法的一种表示;并定义一个编辑器,该解释器使用文法来解释语言中的文法 class Expression(metaclass=ABCMeta): """抽象表达式""" @abstra 阅读全文
摘要:
from abc import ABCMeta, abstractmethod """ 桥接模式:将抽象与实现解耦,使得他们可以毒力的变化 桥接模式关注的是抽象和实现的分离,使得它们可以独立发展; 桥接模式是结构性模式,侧重于软件结构。而策略模式关注的是对算法、规则的封装, 使得算法可以独立于使用它 阅读全文
摘要:
from abc import ABCMeta, abstractmethod """ 定义一个操作算法中的框(骨)架,而将算法中用到的某些具体的步骤放在子类中实现,使得子类可以在不改变算法结构的情况下重新定义 该算法的某些特定步骤。这个定义算法骨架的方法就叫模板方法模式,简称模板模式。 应用场景: 阅读全文
摘要:
一旦Spider的爬取的深度比较深时,数据的提取基本上是贯穿每一层的,为了将数据一层一层传递下去,我们需要将上一层提取的数据传递到下一层,供下一层使用,这时我们就需要使用的scrapy.Request的meta参数,其是一个字典。在传递不变数据时,不需要担心,但是我们传递的是一个Item类型或字典, 阅读全文
摘要:
from abc import ABCMeta, abstractmethod # 访问模式:封装一些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作 # 三个角色:访问者、数据节点、对象结构 class DataNode(metaclass=ABCMet 阅读全文
摘要:
from abc import ABCMeta, abstractmethod # 运用共享技术有效地支持大量细粒度对象的复用,类似于对象池模式,不过对象池是为了节省对象不断创建销毁的时间, # 享元模式是为了防止重复创建相似或相同的对象,导致内存泄漏 # 两个主要角色:享元对象、享元工厂 clas 阅读全文
摘要:
from copy import deepcopy import logging, time # 备忘模式中主要有三个角色:发起人(需要进行备份的对象)、备忘录(备份的状态,即一个备份的文档)、备忘录管理者(备份文档的管理者,由他负责人与发起人的交互) # 应用场景:1、需要保存/恢复对象的状态或数 阅读全文
摘要:
from abc import ABCMeta, abstractmethod from enum import Enum # 工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式 # 简单工厂模式:定义一个创建对象(实例化对象)的接口,通过参数来决定创建哪个类的实例 # 工厂方法模式:定义一个创建对 阅读全文