设计模式入门:起源、概念与分类
需积分: 9 21 浏览量
更新于2024-08-05
收藏 43KB MD 举报
"设计模式-day01.md"
设计模式是软件工程中的一种重要概念,源自建筑领域的设计理念。1977年,建筑大师克里斯托夫·亚历山大在其著作中首次提出设计模式,用于解决建筑设计中的常见问题。随后,这一思想被引入到软件设计领域,尤其是在1995年,艾瑞克·伽马、理査德·海尔姆、拉尔夫·约翰森和约翰·威利斯迪斯四位专家合著的《设计模式:可复用面向对象软件的基础》中,系统地阐述了23种设计模式,对软件工程产生了深远影响。
设计模式是经过实践验证的、可复用的代码设计解决方案,它们反映了在软件设计中经常遇到的问题及其解决方案。设计模式不是具体的代码,而是一种通用的、描述性的语言,用来交流和记录面向对象设计的经验和最佳实践。这些模式涵盖了创建型、结构型和行为型三大类别。
创建型模式关注对象的创建,例如单例模式确保一个类只有一个实例;原型模式通过复制已有对象来创建新对象;工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类;抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族;建造者模式则将复杂对象的构建与其表示分离,使得相同的构建过程可以创建不同的表示。
结构型模式则关注如何组合和连接类或对象,以实现更大的结构。代理模式在原有对象的基础上添加新的功能;适配器模式使不兼容的接口可以一起工作;桥接模式将抽象部分与实现部分分离,使它们可以独立变化;装饰模式动态地给对象添加新的行为或责任;外观模式提供一个统一的接口,简化系统组件之间的交互;享元模式优化大量细粒度对象的使用,减少内存占用;组合模式允许用户以一致的方式处理单个对象和对象集合。
行为型模式涉及对象间责任分配和通信,如策略模式定义算法族,封装各自操作,让它们之间可以互相替换;观察者模式定义了一种一对多的依赖关系,当一个对象的状态改变时,所有依赖于它的对象都会得到通知并自动更新;职责链模式通过将请求沿链式传递,让接收者决定是否处理请求;命令模式将请求封装为一个对象,以便使用不同的请求、队列请求或参数化请求;迭代器模式提供一种方法顺序访问聚合对象的元素,而不暴露其底层表示;备忘录模式保存对象的状态,以便在需要时恢复;状态模式允许对象在其内部状态改变时改变其行为;模板方法模式定义一个操作中的算法骨架,而将一些步骤延迟到子类中;解释器模式提供一个表达式接口,用于解释语言的语法。
学习和应用设计模式对于软件开发有诸多益处,包括提升编程思维,增强代码可读性和可维护性,促进代码重用,提高软件开发效率,以及确保设计的灵活性和稳定性。理解并熟练运用这些模式,有助于软件工程师遵循面向对象设计原则,实现更高层次的抽象和模块化,从而创造出更健壮、可扩展的软件系统。
2021-10-15 上传
2021-10-15 上传
2020-06-15 上传
2020-08-08 上传
2019-09-02 上传
2020-08-08 上传
kkx45
- 粉丝: 0
- 资源: 1
最新资源
- AIserver-0.0.9-py3-none-any.whl.zip
- VC++使用SkinMagic换肤的简单实例
- 电信设备-轧机用四列圆柱滚子轴承喷油塞.zip
- devgroups:世界各地的大量开发者团体名单
- 用户级线程包
- xxl-job-executor:与xxl-job-executor的集成
- Java---Linker
- WebServer:基于模拟Proactor的C ++轻量级web服务器
- SkinPPWTL.dll 实现Windows XP的开始菜单(VC++)
- AIOrqlite-0.1.3-py3-none-any.whl.zip
- d3-playground:我在 Ember.js 中使用 D3 的冒险
- elastic_appsearch
- machine-learning-papers-summary:机器学习论文笔记
- 润滑脂
- osm-grandma:QBUS X OSM | OSM-GRANDMA Granny Revive脚本| 高质量RP | 100%免费
- Excel表格+Word文档各类各行业模板-节目主持人报名表.zip