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

设计模式是面向对象编程中的最佳实践,旨在提高代码的可重用性、可靠性和理解性。GoF四人组在1995年出版的《设计模式:可复用面向对象软件的基础》中总结了23种设计模式,分为创建型、结构型和行为型三大类。学习设计模式包括理解软件设计原则、掌握各种模式及其应用场景,以及在实际项目中应用设计模式。设计模式对于程序员的成长和面试都至关重要,是软件工程的基石之一。
摘要由CSDN通过智能技术生成

设计模式(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种行为型模式,虽然我知道这有点为难!

自定义Spring框架

阅读完下面这4篇文章,我希望你能去自定义一个属于你自己的Spring框架,当然了,我在这里教给你的也只是简单的去模拟了一下Spring里面的IoC功能,我最最最重要的目的是希望你能了解设计模式在具体的开发中的使用。

N问设计模式

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

你可能:

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

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

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

设计模式能带给你什么?

看下下面这张人类演变图。

在这里插入图片描述

从"猿猴→程序猿"的巨变,怎么样,是不是很炫酷啊?

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

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

设计模式有多重要?

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

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

怎么学习设计模式?

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

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

如何选择设计模式?

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

为什么要写设计模式?

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

鸣谢

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

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

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李阿昀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值