07 2022 档案

摘要:前端控制器(Front Controller) 前端控制器模式(Front Controller Pattern)是用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理。该处理程序可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序。 返回 Python设计模式- 阅读全文
posted @ 2022-07-26 17:48 坦先生的AI资料室 阅读(198) 评论(0) 推荐(0) 编辑
摘要:代理模式(Proxy) 目的:代理模式用于需要给一个类增加一些调用方式,又不想改变其接口。常用于登录控制。 角色: Real Sbuject: 被代理的类 Proxy: 代理 返回 Python设计模式-outline 示例 from typing import Union class Subjec 阅读全文
posted @ 2022-07-26 17:47 坦先生的AI资料室 阅读(684) 评论(0) 推荐(0) 编辑
摘要:MVC模式(Model-View-Controller) MVC模式的名称来自于切分软件应用的三个部分,即模型部分、视图部分和控制器部分。MVC被认为是一种架构设计而不是实际模式,但由于其非常重要,在介绍设计模式时无法绕过它。 一方面,MVC是一个非常古早的模式,当时的计算机硬件环境和当前有着较大的 阅读全文
posted @ 2022-07-26 17:47 坦先生的AI资料室 阅读(619) 评论(0) 推荐(0) 编辑
摘要:享元模式(Flyweight) 享元模式是一个考虑系统性能的设计模式,通过使用享元模式可以节约内存空间,提高系统的性能。 享元模式以共享的方式高效地支持大量的细粒度对象,享元对象能做到共享的关键是区分内部状态(Internal State)和外部状态(External State)。 内部状态是存储 阅读全文
posted @ 2022-07-26 17:45 坦先生的AI资料室 阅读(150) 评论(0) 推荐(0) 编辑
摘要:外观模式(Facade) 目的:外观模式用于给复杂系统提供一套简单一致的的接口,以实现某些复杂功能。 使用场景:维护一个遗留的大型系统是,可能这个系统已经非常难以维护和扩展,但是它包含很重要的功能,新的开发必须依赖于它,这样增加外观Facade类,为系统封装一个比较清晰简单的接口,让新系统与Faca 阅读全文
posted @ 2022-07-26 17:44 坦先生的AI资料室 阅读(123) 评论(0) 推荐(0) 编辑
摘要:装饰模式(decorator) 装饰模式是在原有对象的基础上,动态增加一个新的特性。与继承的最大区别是,这种新增特性是比较泛化的,可以被多种对象增加。 返回 Python设计模式-outline 示例 # 原对象 class TextTag: """Represents a base text ta 阅读全文
posted @ 2022-07-26 17:44 坦先生的AI资料室 阅读(191) 评论(0) 推荐(0) 编辑
摘要:组合模式(Composite) 组合模式是用来描述的是一组相同类型的对象的关系。一个组合模式类的实例是用来组合一系列对象(通常是树型结构),以便来描述部分和整体的关系。 优点: 定义了基本对象和组合对象的关系结构(一般为树),基本对象可以被组合成复杂的组合对象,且组合对象可以进一步被组合。 对调用来 阅读全文
posted @ 2022-07-26 17:42 坦先生的AI资料室 阅读(368) 评论(0) 推荐(0) 编辑
摘要:桥接模式(Bridge) 目标:将抽象化(Abstraction)与实现化(Implementation)解耦,使得二者可以独立地变化。 优点:类和示例分离,二者可以独立设计,不受约束 缺点:系统可读性降低 结构 抽象化(Abstraction): 抽象化角色给出定义,并保存一个对实现化角色的引用。 阅读全文
posted @ 2022-07-26 17:42 坦先生的AI资料室 阅读(253) 评论(0) 推荐(0) 编辑
摘要:配适器模式(Adapter) 目的:配适器主要用于,在一个已有类的基础上,封装一个新的符合协议的接口,使这个类可以按照已知协议调用 返回 Python设计模式-outline 示例 from typing import Callable, TypeVar # TypeVar("T) 意思是,可以是任 阅读全文
posted @ 2022-07-26 17:41 坦先生的AI资料室 阅读(131) 评论(0) 推荐(0) 编辑
摘要:三层架构模式(3-tier) 三层架构指: 表现层(presentation layer): 也称UI层,程序运行的入口,如果程序包括界面,界面就放在这一层。 业务逻辑层(business logic layer):王城程序的业务逻辑,对数据访问层进行调用,将从数据访问层中获取的数据反馈给表现层 数 阅读全文
posted @ 2022-07-26 17:40 坦先生的AI资料室 阅读(434) 评论(0) 推荐(0) 编辑
摘要:对象池模式(Pool) 目的:对于一些创建起来颇费资源,并且一次只有一小部分被使用的对象,通过对象池可以缓存这些实例,以避免反复创建。 使用范围:一般进程池是一个典型的对象池 返回 Python设计模式-outline 示例 class ObjectPool: def __init__(self, 阅读全文
posted @ 2022-07-14 17:02 坦先生的AI资料室 阅读(422) 评论(0) 推荐(0) 编辑
摘要:惰性计算/延迟计算(Lazy Evaluation) 目的:类的某个属性来自于一个复杂的耗时的计算,但并不是每次都会调用。通过lazy evaluation模式,可以使该值只在真正需要读取的时候才进行一次计算 返回 Python设计模式-outline 示例 import functools cla 阅读全文
posted @ 2022-07-14 17:02 坦先生的AI资料室 阅读(318) 评论(0) 推荐(0) 编辑
摘要:孤例模式(Singleton)及在python中的进化版Borg模式 目的:传统孤立模式(Singleton) 保障了程序在不同位置都可以且仅可以取到同一个对象实例,即一个类仅最多存在一个实例。Borg模式通过保障同类的所有实例共享所有数据,达到了相同的目的。 传统孤立模式的实现方法很多,如装饰器、 阅读全文
posted @ 2022-07-14 17:00 坦先生的AI资料室 阅读(305) 评论(0) 推荐(0) 编辑
摘要:建造者模式(Builder) 建造者模式适用于那些内容复杂多变,但是建造过程相同的对象。 目标:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 使用范围:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这 阅读全文
posted @ 2022-07-14 16:59 坦先生的AI资料室 阅读(418) 评论(0) 推荐(0) 编辑
摘要:原型模式(Prototype) 目的: 原型模式用于减少一个项目所需的类的数量。 对于许多差异较小的子类,原型模式通过复制一个"原型实例"并做少量修改,来替代声明多个子类。 应用场景: 当新的实例更容易通过一个旧实例衍生出来,并且对这些实例的类定义会很复杂时,可以使用原型模式。 优点: 原型模式用于 阅读全文
posted @ 2022-07-14 16:56 坦先生的AI资料室 阅读(241) 评论(0) 推荐(0) 编辑
摘要:抽象工厂模式(Abstract Factory) 抽象工厂是对工厂模式进行了进一步封装(抽象),即,如果有多个功能类似的工厂,通过抽象工厂,来创建这些工厂。 抽象工厂方法:创建一系列相关或相互依赖抽象出来的的对象接口Interface,不需要具体指明实例化A类或B类 优点: 抽象工厂模式除了具有工厂 阅读全文
posted @ 2022-07-14 16:55 坦先生的AI资料室 阅读(380) 评论(0) 推荐(0) 编辑
摘要:python设计模式学习笔记 基于https://github.com/faif/python-patterns 的框架,查询了各个模式的资料,部分译名可能存在其他翻译 施工中,目前进度(17/37) 总述 1 创建型模式(Creational Patterns) 1.1 工厂(Factory) 工 阅读全文
posted @ 2022-07-14 16:51 坦先生的AI资料室 阅读(243) 评论(0) 推荐(0) 编辑
摘要:工厂模式(Factory) 工厂用于创建其他对象,这些对象往往从属于一个相同的范围,并且在系统中扮演相同的角色。 工厂方法:定义一个用于创建对象的接口函数,可以控制实例化哪一个具体的类。 优点:创建对象时,调用者只需要根据定义好的接口,查询对象名即可,具体对象创建的过程由工厂完成。 缺点:有新的需要 阅读全文
posted @ 2022-07-14 16:49 坦先生的AI资料室 阅读(718) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示