设计模式是什么,为什么要学习设计模式?

在软件工程中, 设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。

这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。

使用设计模式是为了写出可扩展、可读、可维护的高质量代码。

1.提高复杂代码的设计和开发能力

  • 大部分工程师比较熟悉编程语言、工具、框架这些东西,因为每天使用这些完成业务需求
  • 如何分层、分模块、怎么划分类、类质检如何交互、用继承还是组合、怎么做到解耦、高内聚低耦合

2.为职场发展做好铺垫

  • 普通的开发工程师把框架、语言、工具熟练使用,再做几个项目就可以应对平时的开发了
  • 要想突破,成为专家、大牛,在职场中有更高的成就,就需要重视基本功的训练
  • 带团队负责项目整体,不希望团队堆砌代码,让代码无法维护、难以增删

3.让读源码、学习框架事半功倍

  • 读源码看不懂、看不下去很大可能是功力不够
  • 不懂设计模式在看别人代码时就很难get到别人代码的精髓

4.应对面试中的设计模式相关问题

  • 最功利、最直接的目的就是应对面试
  • 不一定必问,问到后回答不好就是败笔
  • 平时应该注意归纳积累,系统梳理

5.告别烂代码

  • 知道代码美丑
  • code review
  • 展示程序员功力最直接的衡量标准。打造个人名片

维基百科

王争 《设计模式之美》

Original: https://www.cnblogs.com/kaituorensheng/p/16512656.html
Author: jihite
Title: 设计模式是什么,为什么要学习设计模式?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/549290/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Golang仿云盘项目-2.3实现文件下载、修改、删除接口

    本文来自博客园,作者:Jayvee,转载请注明原文链接:https://www.cnblogs.com/cenjw/p/16462188.html 目录结构 ❯ pwd /home…

    技术杂谈 2023年7月24日
    085
  • 虚拟机安装Centos7.5详细教程

    (3)选择操作系统Linux,版本为CentOS 7 64 位,点击下一步。 (4)定义虚拟机的名字,并设置虚拟机保存的地址,点击下一步。 (5)设置虚拟机的处理器信息,点击下一步…

    技术杂谈 2023年7月25日
    087
  • Codeforces1573B

    问题描述 给你两个数组,a数组里面是1 – 2n中的奇数任意顺序排列组成,b数组里面是1 – 2n中的奇数任意顺序排列组成。 问你最少需要多少次操作能让a的…

    技术杂谈 2023年7月24日
    065
  • 009 Pycharm的使用(各种骚操作和快捷键)

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链…

    技术杂谈 2023年5月31日
    097
  • Typora 又提示过期了

    最近使用Typora ,收费以后一直使用的Beta版本,今天它又提示我过期了; 看了网络上的教程,都过于麻烦,还是购买正版 支持一下吧 节省一下时间,毕竟开发也要成本。 Origi…

    技术杂谈 2023年5月31日
    0104
  • Django项目的run manage.py Task灰色不可用或者找不到该选项

    【已解决】Django项目的run manage.py Task灰色不可用或者找不到该选项 Django项目的run manage.py Task灰色不可用或者找不到该选项 解决 …

    技术杂谈 2023年6月21日
    098
  • MySQL-连接数据库

    连接数据库在操作数据库之前,需要连接它,输入命令:mysql -u用户名 -p密码。 在你自己本机上连接数据库用上述方式是可以的,不过在平台上连接数据库还需要加上一句-h127.0…

    技术杂谈 2023年7月11日
    064
  • Perl安装教程

    1.Perl下载地址 https://platform.activestate.com/tangxing806/ActivePerl-5.28/distributions 2.下载…

    技术杂谈 2023年5月31日
    097
  • 京东联盟开发(11)——商品类目(2级)

    本文介绍如果获取京东联盟的商品类目。 由于3级类目太长,本文只展示2级。 $result0 = $jdunion->api_category_goods_get($grade…

    技术杂谈 2023年5月31日
    082
  • 你应该知道的LightGBM各种操作!

    LightGBM是基于XGBoost的一款可以快速并行的树模型框架,内部集成了多种集成学习思路,在代码实现上对XGBoost的节点划分进行了改进,内存占用更低训练速度更快。 本文内…

    技术杂谈 2023年5月31日
    078
  • ELK收集MySQL慢日志并告警

    采用的是 filebeat采集日志, Redis做日志存储, logstash消费处理日志,将处理过的日志存储到 ES, kibana做日志展示, Elastalert做监控告警长…

    技术杂谈 2023年6月21日
    095
  • dubbo源码阅读

    http://seekheap.com/posts/dubbo/dubbo-src-01-overview-and-debug-environment.html 先占坑 Origi…

    技术杂谈 2023年6月1日
    075
  • 绘图 Painter转接口封装的方式

    记录下思想 适用于业务逻辑相对单纯的一些画法,比如画背景(颜色,背景,边框等) 一个Draw方法中如果绘制比较复杂的话,就会导致代码混乱,而不灵活,每次需求更改就得重新画过,可重用…

    技术杂谈 2023年5月31日
    082
  • oracle 添加白名单- 重启监听

    由于oracle中存在白名单,有新增主机需要访问,添加白名单需要重启监听 1.添加白名单 登陆oracle主机,su – grid 切到grid用户, vi $ORAC…

    技术杂谈 2023年5月30日
    091
  • python 函数闭包

    def power(exp): def exp_of(num): return num ** exp return exp_of # 返回函数对象 square = power(2…

    技术杂谈 2023年7月25日
    068
  • 54.等我回家

    dsfds posted @2022-09-28 08:30 随遇而安== 阅读(3 ) 评论() 编辑 Original: https://www.cnblogs.com/55z…

    技术杂谈 2023年6月21日
    0121
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球