python 设计模式

简介

设计模式是软件开发中针对常见问题的可重用解决方案 。它们不是可以直接转换为代码的完整设计,而是解决特定问题的模板或蓝图

设计模式的核心价值
  • **提高代码复用性:**避免重复轮子
  • **增强代码可维护性:**使代码结构更清晰
  • **促进团队协作:**提供统一的编程语言和思维方式
  • **提升代码质量:**经过实践检验的解决方案更可靠。
设计模式的类型
复制代码
###### 创建型模式

**简介**

用于解决对象的创建问题,通过封装实例化逻辑,隐藏具体实现细节,让系统在创建对象时更灵活,更可扩展。

**包括**
* 工厂模式(Factory Pattern)
* 抽象工厂(Abstract Factory Pattern)
* 单例模式(Singleton Pattern)
* 建造者模式(Builder Pattern)
* 原型模式(Prototype Pattern)
复制代码
###### 结构型模式

**简介**

关注类与对象的组合与协作,帮助我们构建灵活,可复用,可扩展的系统结构。

**包括**
* 适配器模式(Adapter Pattern)
* 桥接模式(Bridge Pattern)
* 过滤器模式(Filter/Criteria Pattern)
* 组合模式(Composite Pattern)
* 装饰器模式(Decorator Pattern)
* 外观模式(Facde Pattern)
* 享元模式(Flyweight Pattern)
* 代理模式(Proxy Pattern)
复制代码
###### 行为型模式

**简介**

关注对象间的通信与职责分配,通过封装算法,状态或请求逻辑,提升系统的灵活性与可维护性。

**包括**
* 责任链模式(Chain of Responsibility Pattern)
* 命令模式(Command Pattern)
* 解释器模式(Interpreter Pattern)
* 迭代器模式(Iterator Pattern)
* 中介者模式(Mediator Pattern)
* 备忘录模式(Memento Pattern)
* 观察者模式(Observer Pattern)
* 状态模式(State Pattern)
* 空对象模式(Null Object Pattern)
* 策略模式(Strategy Pattern)
* 模板方法模式(Template Method Pattern)
* 访问者模式(Visitor Pattern)
复制代码
###### 企业级架构模式

**简介**

这些模式常用于大型系统的分层架构中,关注表现层于业务逻辑层的协作。

**包括**
* MVC模式
* 业务代表模式
* 组合实体模式
* 数据访问对象模式
* 前端控制器模式
* 拦截过滤器模式
* 传输对象模式
设计模式的优点
  • 提供统一的设计语言,使开发者能快速沟通设计意图
  • 为常见问题提供成熟,可复用的解决方案。
  • 降低系统耦合度,提高代码的可维护性与可扩展性
  • 减少重复设计,提升代码的效率与代码质量
  • 帮助新成员快速理解系统架构与设计思想。
设计模式的六大原则
  • 开闭原则

    对扩展开放,对修改关闭。

  • 里氏替换原则

    任何基类出现的地方,子类都应该可以替代。

  • 依赖倒置原则

    高层模块不应该依赖底层模块,两者都依赖抽象。

  • 接口隔离原则

    一个类不应该依赖它不需要的接口。

  • 迪米特法则

    又称"最少知道原则":一个对象应尽量减少与其他对象的交互。

  • 合成复用原则

    优先使用组合或聚合关系实现复用,而非继承。

相关推荐
端庄的战斗机1 天前
javascript 设计模式(文章很长,请自备瓜子,水果和眼药水)
开发语言·javascript·设计模式
饼干哥哥1 天前
我开发了一个「吃掉」别人Skill来升级的饕餮.Skill,现在免费开源
人工智能·设计模式·开源
CaffeinePro1 天前
什么是系统架构?架构师到底在做什么?
设计模式·架构
AI人工智能+电脑小能手1 天前
【大白话说Java面试题 第156题】【06_Spring篇】第16题:Spring 用到了哪些设计模式?
java·spring·设计模式·代理模式·工厂模式
前端百草阁2 天前
JavaScript 设计模式(23 种)
开发语言·前端·javascript·设计模式
geovindu2 天前
java: Singleton Pattern
java·开发语言·后端·单例模式·设计模式·创建型模式
geovindu2 天前
python: Functional Options Pattern
开发语言·后端·python·设计模式·惯用法模式·函数式选项模式
Kel2 天前
Pregel 为什么会成为LangGraph编排的心脏
人工智能·设计模式·架构
会周易的程序员2 天前
microLog 后端开发指南
开发语言·c++·物联网·设计模式·日志·iot·aiot
geovindu3 天前
go: Functional Options Pattern
开发语言·后端·设计模式·golang·函数式选项模式’·惯用法模式