设计模式
Rnan-prince
知是行之始,行是知之成(1352638748@qq.com)
展开
-
python设计模式【9】-状态模式
定义状态设计模式行为模式关注的是对象的响应性。它们通过对象之间的交互以实现更强大的功能。状态设计模式是一种行为设计模式,有时也被称为状态模式对象。在此模式中,一个对象可以基于其内部状态封装多个行为。状态模式也可以看作是在运行时改变对象行为的一种方式。状态设计模式允许对象在其内部状态变化时改变其行为。这看起来就像对象本身已经改变了它的类一样。状态设计模式常用于开发有限状态机,并帮助协调状态处理操作。理解状态设计模式状态设计模式的三个主要参与者:1、State:这被认为是封装对象行为的接口。原创 2020-11-27 22:47:48 · 371 阅读 · 0 评论 -
python设计模式【8】-模型·视图·控制器-复合模式
MVC不仅是一种实现用户界面的软件模式,同时也是一种易于修改和维护的架构。MVC模式将应用程序分为3个基本部分:模型、视图和控制器。这3个部分使相互关联的,并且有助于将信息的处理与信息的呈现分离开来。MVC模式的工作机制为:模型提供数据和业务逻辑,视图负责数据的展示,而控制器是两者之间的粘合剂,根据用户要求的呈现方式来协调模型和视图。有趣的是,视图和控制器依赖于模型,而不是反过来。这主要是因为用户所关心的是数据。模型是可以独立工作的,这是MVC模式的关键所在。MVC模式的主要意图如下:1、将数据原创 2020-11-27 22:43:34 · 348 阅读 · 0 评论 -
python设计模式【7】-模板方法模式
了解模板方法设计模式模板方法模式适用于以下场景:1、当多个算法或类实现类似或相同逻辑的时候2、在子类中实现算法有助于减少重复代码的时候3、可以让子类利用覆盖实现行为来定义多个算法的时候模板方法模式的主要意图:1、使用基本操作定义算法的框架;2、重新定义子类的某些操作,而无需修改算法的结构;3、实现代码重用并避免重复工作4、利用通用接口或实现模板方法模式使用以下术语——AbstractClass、ConcreteClass、TemplateMethod和Client;原创 2020-11-27 22:38:37 · 436 阅读 · 0 评论 -
python设计模式【6】-命令模式
命令设计模式简介行为模式侧重于对象的响应性,它利用对象之间的交互实现更强大的功能。命令模式也是一种行为设计模式,其中对象用于封装在完成一项操作时或在触发一个事件时所需的全部信息。命令模式通常使用以下术语:Command、Receiver、Invoker和Client:1、Command对象了解Receiver对象的情况,并能调用Receiver对象的方法2、调用者方法的参数值存储在Command对象中3、调用者知道如何执行命令4、客户端用来创建Command对象并设置其接收者命令原创 2020-11-26 21:17:29 · 173 阅读 · 0 评论 -
python设计模式【5】-观察者模式
观察者设计模式是最简单的行为型模式之一;行为型模式,它主要关注的是对象的责任。它们用来处理对象之间的交互,以实现更大的功能。行为型模式建议:对象之间应该能够彼此交互,同时还应该是松散耦合的。理解观察者设计模式在观察者设计模式中,对象(主题)维护了一个依赖(观察者)列表,以便主题可以使用观察者定义的任何方法通知所有观察者它所发生的变化。在分布式应用的世界中,多个服务通常是通过彼此交互来实现用户想要实现的更大型的操作。服务可以执行多种操作,但是他们执行的操作会直接或很大程度上取决于与其交互的服务对象原创 2020-11-26 19:10:16 · 236 阅读 · 0 评论 -
python设计模式【4】-代理模式
理解代理模式代理通常就是一个介于寻求方和需求方之间的中介系统。寻求方是发出请求的一方,而提供方是根据请求提供资源的一方。在Web世界中,它相当于代理服务器。客户端在向网站发出请求时,首先连接到代理服务器,然后向它请求诸如网页之类的资源。代理服务器在内部评估此请求,将其发送到适当的服务器,当它收到响应后,就会将响应传递给客户端。因此代理服务器可以封装请求、保护隐私,并且非常适合在分布式架构中运行。在设计模式的上下文中,代理是充当实际对象接口的类。对象类型可以是多样化的,例如网络连接、内存和文件中的大对原创 2020-11-26 19:02:54 · 213 阅读 · 0 评论 -
python设计模式【3】-门面模式
理解结构设计模式1、结构型模式描述如何将对象和类组合成更大的结构2、结构型模式是一种能够简化设计工作的模式,因为它能够找出更简单的方法来认识或表示实体之间的关系。在面向对象世界中,实体指的是对象或类。3、类模式可以通过继承来描述抽象,从而提供更有用的程序接口,而对象模式则描述了如何将对象联系起来从而组合成更大的对象。结构型模式是类和对象模式的综合体下面是结构型设计模式的一些例子:适配器模式:将一个接口转换成客户希望的另外一个接口。它试图根据客户端的需要来匹配不同类的接口。桥接模式:该原创 2020-11-26 18:52:26 · 220 阅读 · 0 评论 -
python设计模式【2】-工厂模式
一、工厂模式的优点 松耦合,即对象的创建可以独立于类的实现。 客户端无需了解创建对象的类,但是可以照样使用它来创建对象,只需要知道需要传递的接口、方法和参数,就能够创建所需类型的对象。简化了客户端的实现。 可以轻松地在工厂中添加其他类来创建其他类型的对象,无需更改客户端代码,有时客户端只需传递另一个参数就行。 工厂还可以重用现有对象。但是,如果客户端直接创建对象的话,总是创建一个新对象。二、工厂模式的三种变体简单工厂模式:允许接口创建对象,但不会暴露对象的创建逻辑。 工厂方法原创 2020-11-25 19:39:45 · 240 阅读 · 0 评论 -
设计模式的分类
1 创造型模式:运行机制基于对象的创建方式 它们将对象创建的细节隔离开来 代码与所创建的对象的类型无关例子:单例模式2 结构型模式它们致力于设计出能够通过组合获得更强大功能的对象和类的结构 重点是简化结构并识别类和对象之间的关系 它们主要关注类的继承和组合例子:适配器模式3 行为型模式它们关注对象之间的交互以及对象的响应性 对象应该能够交互,同时仍然保持松散耦合例子:观察者模式参考:《python设计模式》(第2版)https://www.epubit.com/原创 2020-11-25 19:26:13 · 153 阅读 · 0 评论 -
python设计模式【1】-单例模式
单例模式的理解保证只有一个特定的类型对象,并提供全局访问点目的:确保类有且只有一个对象被创建 为对象提供一个访问点,以使程序可以全局访问该对象。 控制共享资源的并行访问。应用范围:日志记录,数据库操作,打印机后台处理程序等。例如:希望使用一个日志类对象,将多个服务的日志信息存储到同一个日志文件中。下面是单例模式的UML图:python实现经典的单例模式# coding=utf-8class Single(object): def __new__(cls, *ar.原创 2020-11-25 00:32:32 · 456 阅读 · 1 评论 -
UML类图简介
平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧:一、类的属性的表示方式在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法。那么属性/方法名称前加的加号和减号是什么意思呢?它们表示了这个属性或方法的可见性,UML类图中表示可见性的符号原创 2020-11-25 00:15:56 · 804 阅读 · 0 评论 -
面向对象的设计原则
1. 开放封闭原则开放/封闭原则规定,类或对象及其方法对于扩展来说,应该是开放的,但是对于修改来说,应该是封闭的。简单地说,这意味着当你开发软件应用的时候,一定确保以通用的方式来编写类或模块,以便每当需要扩展类或对象行为的时候不必修改类本身。相反,类的简单扩展将有助于建立新的行为。例如,开放/封闭原则能够在下列情形中表现得淋漓尽致:为了实现所需行为,用户必须通过扩展抽象基类来创建类的实现,而不是通过修改抽象类。本设计原则的优点如下。现有的类不会被修改,因此退化的可能性较小 它还有助于保持以前原创 2020-11-25 00:25:05 · 215 阅读 · 0 评论