历时三个月,少说有三十多万字的《从零开始学习Java设计模式》小白零基础设计模式入门导读(强烈建议收藏)

Posted 李阿昀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了历时三个月,少说有三十多万字的《从零开始学习Java设计模式》小白零基础设计模式入门导读(强烈建议收藏)相关的知识,希望对你有一定的参考价值。

设计模式(Design Pattern)代表了最佳的实践,在面向对象的编程中被很多老鸟们反复使用。那么,使用设计模式究竟有哪些好处呢?看一看下面就知道了,其实还远不止这些好处。

  • 可重用代码。
  • 保证代码可靠性。
  • 使代码更易被他人理解。
  • ······

毫无疑问,设计模式于己、于人、于系统都是多赢的。设计模式之于程序员,就好比圣经之于耶稣信徒一样,意义可想而知!

什么是GoF?

谈及设计模式,必然离不开GoF。

GoF:Gang of Four,也称为"四人组",即EErich Gamma、Richard Helm、Ralph Johnson和John Vlissides这四人。

1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995年艾瑞克·伽马、理査德·海尔姆、拉尔夫·约翰森、约翰·威利斯迪斯等4位作者合作出版了《设计模式:可复用面向对象软件的基础》这一本书,在此书中收录了23个设计模式,这是设计模式领域里程碑的事件,导致了软件设计模式的突破。这4位作者在软件开发领域里也以他们的"四人组"(Gang of Four,简称GoF)著称。

以上就是这四个人,都是远古大神了!高山仰止!

设计模式前置入门基础

作为初次学习设计模式的你,希望你能从下面这篇文章中了解到设计模式这门课的整个教程大纲。

阅读完下面这篇文章,我希望你能了解设计模式的概述,例如软件设计模式产生背景、软件设计模式的概念等等。

阅读完下面这篇文章,我希望你能知道怎样画UML类图。

最后,我希望你阅读完下面这6篇文章,能够对软件设计原则有一个比较清醒的认识。

设计模式的分类

根据GoF四人组合作出版的《设计模式:可复用面向对象软件的基础》这一参考书,我想你应该要知道这四仙总共总结出来了23种设计模式,而且这些模式可以分为三类。

创建型模式

我希望你阅读完下面这5篇文章,能够知道并熟练掌握如下这5种创建型模式。

结构型模式

我希望你阅读完下面这7篇文章,能够知道并熟练掌握如下这7种结构型模式。

行为型模式

我希望你阅读完下面这11篇文章,能够知道并熟练掌握如下这11种行为型模式,虽然我知道这有点为难!

N问设计模式

GoF四人组提出的设计模式,至今仍被人津津乐道,但是你又了解多少呢?

你可能:

  • 没听过
  • 听说过,但不知道具体能干嘛
  • 了解,会用其中的两三种
  • 熟悉,能根据实际情况快速设计
  • 精通,游刃有余

第一种:“虽然不懂你们在说什么,但是貌似很厉害的样子”。大牛才会用到的东西,高端而又神秘!

最后一种:“已上天,正和太阳肩并肩”。心中未曾想用设计模式,写出的代码却处处都是。倘若你和我一样,属于其他情况,嘿嘿😊,那么,就认真学习吧!

设计模式能带给你什么?

看下下面这张人类演变图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mbpRwvkP-1633918566538)(./imgs/N问设计模式.png)]
从"猿猴→程序猿"的巨变,怎么样,是不是很炫酷啊?

有些人说设计模式没用,真是这样吗?

引用一句哲学名言:存在即合理。当然,若要扯非OO语言,也许真没什么用!但可以肯定的是,非OO语言完全可以借鉴OO的思想,设计模式也不例外!

设计模式有多重要?

要做一位大神或所谓的高手,基本之一就是要懂得若干设计模式。设计模式是软件工程的基石脉络,如同大厦的结构一样,你说有多重。

对了,还有面试要考!设计模式有多重要勿须我再费口舌了。

怎么学习设计模式?

设计模式不是基于理论发明的,而是先有问题场景,再基于需求和情景不断演化设计方案,最后把一些方案标准化成"模式"。

所以,通过实际案例学习是最好的!在讨论每一个设计模式时,要尽量用生活中的真实问题来理解和分析,然后尝试一步步地阐述设计,并以一个能匹配某些模式的设计收尾。

如何选择设计模式?

设计模式是针对某种情景下某种问题的某种解决方案,也就是说,每个模式都有自己的使用场景、使用方法和使用后果。正所谓物有两极,各模式也存在相应的优缺点,得其优,而避其劣,终得之!

为什么要写设计模式?

虽然设计模式被很多人念叨并不断书写,但是笔者还是决定追随前人的脚步,在前辈们的基础上整理出了这套设计模式系列教程,我衷心地希望大家都能通过我这套教程来学会设计模式,也算是不枉我一片苦心了!

鸣谢

写这篇文章,我参考了下面这篇文章很多,作者是一去丶二三里,虽然作者是用C++语言来讲述设计模式的,而笔者是用Java语言,但是大家要知道这两者都是殊途同归的。希望大家不要纠结于语言层面,而是多将注意力放在设计模式上。

最后,我是李阿昀,正在向一名优秀的程序员的路上前进,在此感谢大家抽空阅读!

以上是关于历时三个月,少说有三十多万字的《从零开始学习Java设计模式》小白零基础设计模式入门导读(强烈建议收藏)的主要内容,如果未能解决你的问题,请参考以下文章

数据丢失了?我的一百万数据剩下了三十多万,为什么?并发问题

牛顿简介

sqlserver数据库登录日志LOG目录下的SQLDump10000.txt文件有三十多G,我想问一下这个文件能删除吗?

现在负债二十多万,一个月工资才三千多,怎么样才能把账还清?

从零开始学深度学习编译器七,万字长文入门TVM Pass

预告!10 万字的 C++ 八股文 PDF