自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 持久话模式

Rabbit 持久话模式 生产者模式 在我们创建队列的时候,把队列变成可持久化的队列 在我们插入数据的时候,把数据变成持久话数据 from pika import BlockingConnection, ConnectionParameters, BasicProperties connection = BlockingConnection(ConnectionParameters(host='localhost')) channel = connection.channel() channel

2020-06-28 10:33:30 88

原创 Rabbit中的应答参数

RabbitMQ中的应答参数 生成者模式 在生产者模式中,不需要进行改动 import pika connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue='hello', durable=True, passive=True) channel.basic_publish(ex

2020-06-21 19:41:30 197

原创 使用RabbitMQ实现一个简单的消息队列

实现一个简单模式 首先需要把RabbitMQ跑起来 rabbitmq-server.bat 2. 实现一个生产者模式 import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) # 声明一个管道 channel = connection.channel() # 声明queue,这个队列在RabbitMQ中生成,发送方和接收方使用同一个队列 channel.queue_dec

2020-06-21 19:40:46 299

原创 策略模式

策略模式 内容 定义一系列算法,把他们一个个封装起来,并且使他们可以相互替换,(算法可独立使用于他的客户而变化) 角色 抽象策略 具体策略 上下文 优点 定义了一系列可重用的算法或者 消除了一些条件语句 相同行为的不同实现 缺点 客户必须了解不同的策略 代码实例 from abc import ABCMeta,abstractmethod class Strategy(object): """docstring for Strategy""" @abstractmet

2020-06-21 19:36:39 86

原创 观察者模式

观察模式 内容 定义对象中的一对多的依赖关系,当一个对象的状态发生改变。所有依赖于他的对象都得到通知并被自动更新,又被称为“发布-订阅”关系 角色 抽象主题 具体主题 抽象观察者 具体观察者 使用场景 当一个抽象模型两方面,其中一个方面依赖另一个方面,将这两个封装在一个独立的对象中,可以使他们各自改变和复用 当一个对象的改变需要改变其他对象的时候,而不知道具体有多少对象带改变 当一个对象必须通知其他对象,而他又不能假定其他对象是谁(不希望这些对象是紧密耦合的) 优点 目标和观察者之

2020-06-21 19:36:00 90

原创 责任链模式

责任链模式 内容: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些连城一条链,并连着这条链传递该请求,知道有一个对象处理它为止 角色 抽象处理者 具体处理者 客户端 使用场景 有多个对象可以处理一个请求,哪个对象处理由运行时决定 在不明确接收者的情况下,向多个对象中的一个提交一个请求 优点 降低耦合度 一个对象无需知道是哪一个对象请求 代码实例 from abc import ABCMeta, abstractmethod class

2020-06-21 19:35:16 86

原创 代理模式

代理模式 内容 为其他对象提供一种代理以控制这个兑现的访问 使用场景 远程代理 为远程对象提供代理 虚代理 根据需要创建很大的对象 代码实例 class Subject(metaclass=ABCMeta): @abstractmethod def get_content(self): pass @abstractmethod def set_content(self): pass class RealSubject(Sub

2020-06-21 19:33:45 111

原创 外观模式

外观模式 内容 为子系统中的一组接口提供一个一直的界面,外观模式定义了一个高层接口,这个接口是的这个系统更加容易的使用 角色 外观 子系统类 优点 减少了相互依赖性 提高了灵活性 提高了安全性 代码实例 from abc import ABCMeta, abstractmethod class Cpu(): def run(self): print("cpu正在运行") def stop(self): print("C

2020-06-21 19:33:06 104

原创 组合模式

组合模式 内容 将对象组合成树状结构表示部分-整体的层次结构。组合模式使用户对单个对象和多个对象的使用具有一致性 角色 抽象组件 叶子组件 复合组件 客户段 使用场景 表示对象部分-整体的层次结构。(特别是结构是递归的) 希望用户忽略组合对象和单个对象的不同,用户统一使用组合结构中的所有对象 优点 定义了包含基本对象和组合对象的类层次结构 简化客户段代码,即客户段可以一致的使用组合对象和单个对象 更容易增加新类型组件 代码实例 from abc import ABCM

2020-06-21 19:32:28 77

原创 桥模式

桥模式 内容 将一个事务的两个维度分离,使其可以独立的变化 角色 抽象 细化抽象 实现者 具体实现者 应用场景 当事务有两个维度,两个维度都可能拓展 优点 抽象和实现相分离 优秀的扩展能力 代码实例 from abc import ABCMeta,abstractmethod class Shape(metaclass=ABCMeta): # 形状类 """docstring for Shape""" def __init__(self,color): self

2020-06-21 19:31:53 119

原创 适配器模式

适配器模式 角色 目标接口 带适配的类 适配器 使用场景 想使用一个已经存在的类,而他的接口不符合你的要求 (对象适配器)想使用进行存在的子类,但不能对每一个都进行子类化以匹配他们的接口。对象适配器可以适配他的父类接口 内容 将一个类的接口转换为客户希望的另一个接口,适配器模式使得原来由于接口不兼容而不能再一起工作的类可以一起工作 实现方法 类适配器: 多继承 from abc import ABCMeta,abstractstaticmethod class Pay(met

2020-06-21 19:31:18 102

原创 单例模式

单例模式 内容 保证一个类只有一个实例,并提供一个访问他的全局访问点 角色 单例 优点 对唯一实例的受控访问 相当于全局变量,防止了命名空间被污染 代码实例 class Danli: """docstring for Danli""" def __new__(cls,*args,**kwargs): if not hasattr(cls,'_instance'): cls._instance = super(Danli,cls).__new__(cls) return

2020-06-21 19:30:45 82

原创 建造者模式

建造者模式 内容 将一个复杂的对象的构建和他的表示分离,使得同样构建过程可以创建不同的表示 角色 抽象建造者 具体建造者 指挥者 产品 优点 隐藏了一个产品的内部结构和装配过程 将构造代码和表示代码分开 对构造代码进行更细致的控制 区别: 和抽象工厂相似,也用来创建复杂对象。主要区别是:建造者模式主要是一步步构造一个复杂的对象,而抽象工程是着重于多个系类的产品对象 实例代码 from abc import ABCMeta,abstractclassmethod # 建造者模式

2020-06-21 19:30:06 85

原创 设计模式之模板方法模式

建造者模式 内容 将一个复杂的对象的构建和他的表示分离,使得同样构建过程可以创建不同的表示 角色 抽象建造者 具体建造者 指挥者 产品 优点 隐藏了一个产品的内部结构和装配过程 将构造代码和表示代码分开 对构造代码进行更细致的控制 区别: 和抽象工厂相似,也用来创建复杂对象。主要区别是:建造者模式主要是一步步构造一个复杂的对象,而抽象工程是着重于多个系类的产品对象 实例代码 from abc import ABCMeta,abstractclassmethod # 建造者模式

2020-06-17 16:41:40 69

原创 设计模式中的工厂模式

创建型设计模式 内容 ​ 不需要像客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例 角色 工厂模式(creater) 抽象产品角色(Product) 具体产品角色(Concrete Productxten) 普通工厂模式 优点: 隐藏了对象创建的细节 客户段不需要修改代码 缺点 违反了单一职责的原则,将创建逻辑几种到一个工厂里面 当添加新产品时,需要修改工厂的代码,违反了开闭原则 from abc import ABCMeta,abstractstat

2020-06-16 14:12:16 135

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除