设计模式的知识大纲分享
最近一段时间,通过阅读《head first 设计模式》和其他资料,系统地学习了设计模式的知识。我将自己的思考和总结做成了知识大纲与大家分享:https://mubu.com/doc/kpPXaNRfVC
如果你觉得幕布这个知识大纲整理工具很好用,欢迎使用我的邀请链接来注册:https://mubu.com/inv/2060390
。你和我都会获得30天的高级版~
阅读建议
- 这个大纲来自我学习时的思考和总结,不适合把它当做学习设计模式的教程。建议先阅读《head first 设计模式》来学习设计模式
-
例子很重要:在学习某个设计模式的时候,如果你脑中没有具体的例子,那么是很难理解它的。
-
例子的来源包括
- 理解学习资料中举的例子
- 编程经验:见过/写过这样的代码
-
如果无法通过上面两种途径来找到例子,建议先不要学习这个设计模式。即使现在花费大量时间钻研透了(来自我的教训),也会有以下坏处:
- 很快就忘记
- 将来遇到这个模式,发现自己当初的理解有误
- 由于编程经验的积累,一段时间以后只需要花费一点点时间就能搞懂,当初浪费那么多时间在这上面不值得
-
- 不建议一口气读完(你会很快感到无趣)。可以先阅读一点感兴趣的部分。也可以先收藏着,在将来遇到/学习这个模式的时候再看对应的部分
随着经验的丰富和理解的加深,我会持续更新这份资料。
我在总结的时候,会尽量参考比较权威的资料来保证正确性、尽量囊括所有重要的部分、尽量解释得通俗易懂,但是难免有所疏漏。如果你发现了问题或者希望与我讨论,欢迎发送邮件到 632882184@qq.com !
csRyan的学习专栏
分享对于计算机科学的学习和思考,只发布有价值的文章: 对于那些网上已经有完整资料,且相关资料已经整...
So you're passionate? How passionate? What actions does your passion lead you to do? If the heart...
1.1k 声望
181 粉丝
推荐阅读
手写一个Parser - 代码简单而功能强大的Pratt Parsing
在编译的流程中,一个很重要的步骤是语法分析(又称解析,Parsing)。解析器(Parser)负责将Token流转化为抽象语法树(AST)。这篇文章介绍一种Parser的实现算法:Pratt Parsing,又称Top Down Operator Precede...
csRyan阅读 2.7k
15分钟入门23种设计模式:图解,范例和对比
本文力图在15分钟内,通过UML图解、范例和类比,让你对面向对象的23种设计模式形成提纲挈领的认识,从而让我们在面临代码设计问题时更加成竹在胸。本文源代码: UML, Sample Code。
风云信步赞 5阅读 666评论 1
短小精悍的发布订阅库 mitt
发布-订阅模式定义了一种一对多的依赖关系,让多个订阅者对象同时监听某一个主题对象。这个主题对象在自身状态变化时,会通知所有订阅者对象,使它们能够自动更新自己的状态。
qinghuanI赞 3阅读 289
面试的时候别再说你不会设计模式了
最近在设计一个对某个中间件的测试方案,这个测试方案需要包含不同的测试逻辑,但相同的是需要对各个环节进行记录;比如统计耗时、调用通知 API 等相同的逻辑。
crossoverJie阅读 1.2k
工厂模式、单例模式、策略模式、适配器模式、观察者模式的原理和使用详解
🎈 工厂模式工厂模式的原理作用: 就是你只要传你需要的类进去,你就能得到他的实例化对象其实工厂就是帮你实例化你所需要的类 {代码...} 工厂模式的应用实例化多个类来处理不同业务时候使用,这里以求矩形和圆形...
tiny极客赞 1阅读 659评论 1
php 中的 DI 依赖注入
🎈 什么是 DI / 依赖注入依赖注入DI 其实本质上是指对类的依赖通过构造器完成 自动注入通俗来说,就是你当前操作一个类,但是这个类的某些方法或者功能不是单单只靠这个类就能完成的,而是要 借助另一个类 的才能...
tiny极客赞 1阅读 627评论 1
设计模式篇之一文搞懂如何实现单例模式
设计模式篇之一文搞懂如何实现单例模式大家好,我是小简,这一篇文章,6种单例方法一网打尽,虽然单例模式很简单,但是也是设计模式入门基础,我也来详细讲讲。DEMO仓库:[链接] ,欢迎PR,共建。单例模式单例模...
JanYork_小简赞 1阅读 609
So you're passionate? How passionate? What actions does your passion lead you to do? If the heart...
1.1k 声望
181 粉丝
宣传栏
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。