![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python设计模式
shizhengju
这个作者很懒,什么都没留下…
展开
-
Python状态设计模式
定义状态设计模式行为模式关注的是对象的响应性。它们通过对象之间的交互以实现更强大的功能。状态设计模式是一种行为设计模式,有时也被称为状态模式对象。在此模式中,一个对象可以基于其内部状态封装多个行为。状态模式也可以看作是在运行时改变对象行为的一种方式。状态设计模式允许对象在其内部状态变化时改变其行为。这看起来就像对象本身已经改变了它的类一样。状态设计模式常用于开发有限状态机,并帮助协调状态处...原创 2020-04-29 11:41:03 · 903 阅读 · 0 评论 -
Python模型—视图—控制器——复合模式
MVC不仅是一种实现用户界面的软件模式,同时也是一种易于修改和维护的架构。MVC模式将应用程序分为3个基本部分:模型、视图和控制器。这3个部分使相互关联的,并且有助于将信息的处理与信息的呈现分离开来。MVC模式的工作机制为:模型提供数据和业务逻辑,视图负责数据的展示,而控制器是两者之间的粘合剂,根据用户要求的呈现方式来协调模型和视图。有趣的是,视图和控制器依赖于模型,而不是反过来。这主要是因为...转载 2020-04-28 18:16:50 · 444 阅读 · 0 评论 -
Python模板方法模式——封装算法
了解模板方法设计模式模板方法模式适用于以下场景:1、当多个算法或类实现类似或相同逻辑的时候2、在子类中实现算法有助于减少重复代码的时候3、可以让子类利用覆盖实现行为来定义多个算法的时候模板方法模式的主要意图:1、使用基本操作定义算法的框架;2、重新定义子类的某些操作,而无需修改算法的结构;3、实现代码重用并避免重复工作4、利用通用接口或实现模板方法模式使用以...原创 2020-04-28 16:22:01 · 2245 阅读 · 0 评论 -
Python命令模式——封装调用
命令设计模式简介行为模式侧重于对象的响应性,它利用对象之间的交互实现更强大的功能。命令模式也是一种行为设计模式,其中对象用于封装在完成一项操作时或在触发一个事件时所需的全部信息。命令模式通常使用以下术语:Command、Receiver、Invoker和Client:1、Command对象了解Receiver对象的情况,并能调用Receiver对象的方法2、调用者方法的参数值存储在...原创 2020-04-28 14:10:39 · 1510 阅读 · 0 评论 -
Python观察者模式——了解对象的情况二
观察者模式的通知方式有两种不同的方式可以通知观察者在主题中发生的变化。它们可以被分为推模型或拉模型。拉模型在拉模型中,观察者扮演积极的角色。1、每当发生变化时,主题都会向所有已经注册的观察者进行广播。2、出现变化时,观察者负责获取相应的变化情况,或者从订户哪里拉取数据3、拉模型的效率较低,因为它涉及两个步骤,第一步,主题通知观察者;第二步,观察者从主题那里提取所需的数据...原创 2020-04-27 18:09:00 · 200 阅读 · 0 评论 -
Python观察者模式——了解对象的情况一
观察者设计模式是最简单的行为型模式之一;行为型模式,它主要关注的是对象的责任。它们用来处理对象之间的交互,以实现更大的功能。行为型模式建议:对象之间应该能够彼此交互,同时还应该是松散耦合的。理解观察者设计模式在观察者设计模式中,对象(主题)维护了一个依赖(观察者)列表,以便主题可以使用观察者定义的任何方法通知所有观察者它所发生的变化。在分布式应用的世界中,多个服务通常是通过彼此交互来实...原创 2020-04-27 16:15:34 · 246 阅读 · 0 评论 -
Python代理模式——控制对象的访问二
生活中的代理模式我们将通过付款用例来展示代理模式的生活中的应用场景。假设你在商场看中了一件衣服,你想买但是手里的现金却不够了。但是你可以刷卡,这笔钱就会划入商家的账户,从而完成支付。下面我们利用python来开发一个应用程序,实现上面的例子。首先从客户端开始:去了商场,想买一件衣服。1、你的行为由类You表示;2、为了购买衣服,该类提供了make_payment()方法;make_...原创 2020-04-27 14:25:19 · 182 阅读 · 0 评论 -
Python代理模式——控制对象的访问一
理解代理模式代理通常就是一个介于寻求方和需求方之间的中介系统。寻求方是发出请求的一方,而提供方是根据请求提供资源的一方。在Web世界中,它相当于代理服务器。客户端在向网站发出请求时,首先连接到代理服务器,然后向它请求诸如网页之类的资源。代理服务器在内部评估此请求,将其发送到适当的服务器,当它收到响应后,就会将响应传递给客户端。因此代理服务器可以封装请求、保护隐私,并且非常适合在分布式架构中运行...原创 2020-04-27 11:03:54 · 399 阅读 · 0 评论 -
Python门面设计模式
理解结构设计模式1、结构型模式描述如何将对象和类组合成更大的结构2、结构型模式是一种能够简化设计工作的模式,因为它能够找出更简单的方法来认识或表示实体之间的关系。在面向对象世界中,实体指的是对象或类。3、类模式可以通过继承来描述抽象,从而提供更有用的程序接口,而对象模式则描述了如何将对象联系起来从而组合成更大的对象。结构型模式是类和对象模式的综合体下面是结构型设计模式的一些例子:...原创 2020-04-26 16:01:42 · 286 阅读 · 0 评论 -
Python工厂模式二
抽象工厂模式抽象工厂模式的主要目的是提供一个接口来创建一系列相关对象,而无需指定具体的类。工厂方法将创建实例的任务委托给了子类,而抽象工厂方法的目标是创建一系列相关对象。实现抽象工厂模式想象一下,我们开办了一家披萨店,供应美味的印式和美式披萨。为此,我们首先创建一个抽象基类——PizzaFactory,PizzaFactory类有两个抽象方法,即create_vag_piza()和cr...原创 2020-04-26 11:41:46 · 271 阅读 · 1 评论 -
Python工厂模式一
工厂模式简介在面向对象编程中,术语“工厂”表示一个负责创建其他类型对象的类。通常情况下,作为一个工厂的类有一个对象以及与它关联的多个方法。客户端使用某些参数调用此方法,之后,工厂会根据此创建所需类型的对象,然后将它们返回给客户端。工厂具有的优点:1、松耦合,即对象的创建可以独立于类的实现2、客户端无需了解创建对象的类,但是照样可以使用它来创建对象。它只需要知道需要传递的接口、方法和...原创 2020-04-24 17:28:02 · 395 阅读 · 0 评论 -
Python单例设计模式二
单例模式实例一作为一个实际的用例,我们将通过一个数据库应用程序来展示单例的应用。这里不妨以需要对数据库进行多种读取和写入操作的云服务为例进行讲解。完整的云服务被分解为多个服务,每个服务执行不同的数据库操作。很明显,跨不同的服务的共享资源是数据库本身。因此,如果我们需要要更好地设计云服务,必须注意以下几点。① 数据库中操作的一致性,即一个操作不应该与其他操作发生冲突② 优化数据库的各...原创 2020-04-24 15:04:31 · 482 阅读 · 0 评论 -
Python单例设计模式一
一、理解单例设计模式单例模式提供这样一个机制,即确保类有且只有一个特定类型的对象,并提供全局访问点。因此,单例模式通常用于日志记录、数据库操作、打印机后台处理程序;该程序运行过程中只能生成一个实例,以避免对同一资源产生相互冲突的请求。由于在系统内存中只存在一个对象,因此可以节约系统资源,例如数据库操作需要频繁的创建和销毁对象时单例模式无疑可以提高系统的性能。单例设计模式的意图:① 确保...原创 2020-04-24 11:17:49 · 272 阅读 · 0 评论 -
设计模式分类
一、创建型模式① 它们的运行机制基于对象的创建方式。② 它们将对象创建的细节隔离开来。③ 代码与所建对象的类型无关。单例模式是创建类型模式的一个例子二、结构型模式① 它们致力于设计出能够通过组合获得更强大功能的对象和类的结构。② 重点是简化结构并识别类和对象之间的关系。③ 他们主要关注类的继承和组合适配器模式是结构模式的一个例子三、行为型模式① 他关注对...原创 2020-04-23 14:23:29 · 286 阅读 · 0 评论 -
面向对象设计原则
一、开放封闭原则开发封闭原则规定,类或对象及其方法对于扩展来说,应该是开放的;但是对于修改来说,应该是封闭的。这意味着当开发软件应用的时候,一定要确保以通用的方式来编写类或模块,以便每当需要扩展类或对象行为的时候不必修改类本身。相反,类的简单扩展将有助于建立新的行为。也就是说为了实现所需行为,用户必须通过扩展抽象基类来创建类的实现,而不是通过修改抽象类。优点: 现有的类...原创 2020-04-23 14:10:58 · 114 阅读 · 0 评论