当前位置: 首页 > news >正文

设计模式的学习顺序

 设计模式的学习顺序可以按照以下步骤进行:

  1. 掌握基础知识:先确保你对编程语言和软件开发的基本概念有深入的理解,包括面向对象编程、继承、多态等。
  2. 学习常用设计模式:首先学习并理解一些常用的设计模式,例如单例模式、工厂模式、观察者模式等。这些模式在软件开发中非常常见,掌握它们对你的工作非常有帮助。
  3. 深入理解设计模式:在掌握常用设计模式的基础上,逐渐深入学习更复杂的设计模式,例如建造者模式、原型模式、策略模式等。这些模式通常需要更多的知识和经验才能理解和应用。
  4. 学习设计模式的基础设施:了解设计模式的基础设施,包括模式分类、模式元素、模式结构等,这将帮助你更好地理解和应用设计模式。
  5. 实践和总结:尝试在实际开发中使用你学到的设计模式,并注意观察它们的表现。通过实践,你可以更好地理解设计模式的适用场景和效果,同时也可以发现自己的不足之处并进行改进。
  6. 参与社区和活动:参与设计模式相关的社区活动和研讨会,与其他开发者交流和分享经验,这将帮助你不断扩展自己的知识和技能。
  7. 持续学习和更新知识:设计模式是一个不断发展的领域,新的模式和现有模式的变体不断涌现。因此,持续学习和更新知识是保持竞争力的重要方面。

总之,设计模式的学习需要不断的实践和探索,只有通过不断地学习和实践,才能真正掌握这一重要的技能。

学习顺序设计模式常用程度适用层次引入时机结构复杂度变化实现体现的原则
1工厂-Factory Method很常用代码级编码时简单子类的实例化对象的创建工作延迟到子类开闭原则
2单例-Singleton很常用代码级、应用级设计时、编码时简单唯一实例封装对象产生的个数
3外观-Facade很常用应用级、构架级设计时、编码时简单子系统的高层接口封装子系统开闭原则
4模板-Template Method很常用代码级编码时、重构时简单算法子步骤的变化封装算法结构依赖倒置原则
5抽象工厂-Abstract Factory比较常用应用级设计时比较复杂产品家族的扩展封装产品族系列内容的创建开闭原则
6组合-Composite比较常用代码级编码时、重构时比较复杂复杂对象接口的统一统一复杂对象的接口里氏代换原则
7代理-Proxy比较常用应用级、构架级设计时、编码时简单对象访问的变化封装对象的访问过程里氏代换原则
8命令-Command比较常用应用级设计时、编码时比较简单请求的变化封装行为对对象开闭原则
9观察者-Observer比较常用应用级、构架级设计时、编码时比较简单通讯对象的变化封装对象通知开闭原则
10策略-Strategy比较常用应用级设计时一般算法的变化封装算法里氏代换原则
11建造者-Builder一般代码级编码时一般对象组建的变化封装对象的组建过程开闭原则
12适配器-Adapter一般代码级重构时一般对象接口的变化接口的转换
13桥接-Bridge一般代码级设计时、编码时一般对象的多维度变化分离接口以及实现开闭原则
14装饰器-Decorator一般代码级重构时比较复杂对象的组合职责在稳定接口上扩展开闭原则
15迭代器-Iterator一般代码级、应用级编码时、重构时比较简单对象内部集合的变化封装对象内部集合的使用单一职责原则
16中介者-Mediator一般应用级、构架级编码时、重构时一般对象交互的变化封装对象间的交互开闭原则
17备忘录-Memento一般代码级编码时比较简单状态的辅助保存封装对象状态的变化接口隔离原则
18状态-State一般应用级设计时、编码时一般对象状态的变化封装与状态相关的行为单一职责原则
19访问者-Visitor一般应用级设计时比较复杂对象操作变化封装对象操作变化开闭原则
20原型-Prototype不太常用应用级编码时、重构时比较简单实例化的类封装对原型的拷贝依赖倒置原则
21享元-Flyweight不太常用代码级、应用级设计时一般系统开销的优化封装对象的获取
22责任链-Chain of Responsibility不太常用应用级、构架级设计时、编码时比较复杂对象的请求过程封装对象的责任范围
23解释器-Interpreter不太常用应用级设计时比较复杂领域问题的变化封装特定领域的变化

《完结》 

http://www.lryc.cn/news/194302.html

相关文章:

  • 数据结构和算法——树结构
  • 【Java】Integer包装类
  • Web后端开发登录校验及JWT令牌,过滤器,拦截器详解
  • 大语言模型迎来重大突破!找到解释神经网络行为方法
  • zabbix内置宏、自动发现与注册
  • Oracle与Mysql语法区别
  • Jetpack:008-Icon与Image
  • 参数解析(牛客)
  • Linux网络编程系列之服务器编程——阻塞IO模型
  • 排序算法-基数排序法(RadixSort)
  • nginx绑定tomcat与tomcat联合使用的配置(nginx反向代理tomcat的配置说明)
  • 【Java】nextInt()后面紧接nextLine()读取不到数据/InputMismatchException异常的解决方案
  • 【传输层协议】UDP/TCP结构特点与原理(详解)
  • 哪种网站适合物理服务器
  • uni-app集成使用SQLite
  • Qt不能安装自己想要的版本,如Qt 5.15.2
  • 学信息系统项目管理师第4版系列28_组织级项目管理和量化项目管理
  • Bean实例化的三级缓存
  • Jenkins+Gitlab+Docker(Dockerfile)部署
  • Web前端-Vue2+Vue3基础入门到实战项目-Day4(组件的三大组成部分, 组件通信, 案例-组件版小黑记事本, 进阶语法)
  • 【大模型应用开发教程】01_大模型简介
  • Flume 简介及基本使用
  • 行业追踪,2023-10-11
  • Linux:进程控制
  • HTTP中的GET方法与POST方法
  • 2023年10月16日-10月22日,(光追+ue+osg继续按部就班进行即可。)
  • 【Docker】命令使用大全
  • 查找算法:二分查找、插值查找、斐波那契查找
  • python+django高校教室资源预约管理系统lqg8u
  • Potato靶机