前几天给大家介绍了算法和数据结构的基础知识。后来有小伙伴私信问我:“小灰,能不能也说说设计模式的相关知识?”没问题!对于程序员来说,设计模式也是必须掌握的核心知识。今天小编就给大家说说重点。编程的痛点那么,什么是设计模式呢?在介绍这个概念之前,先问你,你在工作中有没有接过“祖传密码”?也就是老板让你去维护之前程序员写的代码。的旧物品。小辉做了10年的程序员,有过很多次这样的经历。这些祖传代码中有相当一部分根本不知道写的是什么,注释也很少,结构也很混乱,所以不敢修改和删除。当初写这些代码的前辈要么离职了,也没人问。就算还在工作,他也能找人,想问对方一些代码问题,还是得看对方的脸色。这就是祖先代码的痛苦。什么是设计模式,我们应该做什么?很多资深程序员经过长期的实践,总结出了一系列的解决方案。这些解决方案可以提高代码的可读性,增加代码的可重用性,并确保代码的可扩展性。这一系列的解决方案被称为设计模式,是面向对象编程中的各种经典套路。设计模式是一种抽象的编程思想,不局限于特定的编程语言,而是在多种语言之间共享。例如,设计模式可用于Java、C#和C++语言。但是设计模式也有它的界限,它的适用范围是面向对象的编程语言。对于面向过程的语言、函数式编程语言来说,再谈设计模式是没有意义的。如果有人告诉你Fortran语言的设计模式非常好用,或者说你正在学习Lisp语言的设计模式,那这个人一定是个伪程序员。设计模式的分类那么,资深程序员总结出了多少种设计模式呢?1995年,四位编程界大咖合着了一本书,名叫《Design Patterns: Elements of Reusable Object-Oriented Software》,译为《设计模式:可复用面向对象软件的基础》,书中一共收录了23种设计模式。本书是软件研发领域的一个重要里程碑。合着本书的四位作者在业界被称为GoF(GangofFour),因此本书也被称为GoF设计模式。这23种设计模式按设计目的可分为主要类型:第一类:创建型模式这一类设计模式的目的是创建对象。比如常用的工厂模式和单例模式就属于创建模式。第二类:结构型模式这一类设计模式的目的是优化不同类、对象、接口之间的结构关系。比较常用的代理模式和装饰器模式都属于结构模式。第三类:行为模式这一类设计模式的目的是为了更好地实现类之间的交互和算法的执行。比如策略模式和观察者模式都属于行为模式。下图总结了所有23种设计模式的分类,大家可以收藏起来。可能有人会觉得迷茫:网上有很多程序员老是讲24种设计模式。为什么只说23?其实,这两种说法都是对的。24种设计模式是在原来23种类型的基础上,增加了空对象模式,属于行为模式。另外,随着编程领域的不断发展,许多新的设计模式不断被提出。目前,人们使用的设计模式远不止24种。比如生产者消费者模式、发布订阅模式等,它们虽然不在24种设计模式之中,但还是很常用的。有做后台开发的朋友可能会问:我们平时用的MVC模式是不是也属于设计模式?从我个人的角度来看,设计模式研究的是类、对象、接口之间的关系。是一个具体的问题。而MVC则是研究代码模块之间的关系,提供封装的解决方案。所以MVC属于一种架构,而不是一种设计模式。本文转载自微信?“程序员小惠”,可通过以下二维码关注。转载本文请联系程序员小灰公众号。
