【设计模式前言】

目前的AI这么火,随便搜下就能得到代码,为什么还要学习设计模式?

我认为AI虽然足够智能,它确实可以把你的某些需求翻译出来,但是如果你做一些中大型项目,它可能显得有些无力。这时候你至少也要向AI准确描述这些设计模式,如何组装,在哪个模块使用等等。如果不理解设计模式,很难用AI去构造一个理想中的项目。

网上那么多设计模式教程,为什么还要自己写?

每个人对设计模式的理解都有自己独特的见解。而我作为一个也在学习和实践的程序员,想把自己在这个过程中对设计模式的理解,分享给大家,也是对自己学习和实践的一个巩固。

为什么要选择Java语言?

虽然我现在主要是在用GO和kotlin语言开发项目,但目前从语言排名来看,Java的份额还是占主导地位(C++门槛高,Python没学过),而且从事java开发的还是很多的,所以我选用了Java语言作为设计模式的描述。

关于设计模式的6大原则

  1. 单一原则
  2. 里氏替换原则
  3. 迪米特法则
  4. 开闭原则
  5. 依赖倒转原则
  6. 合成与聚合原则

这些概念我也不具体讲了,网上有很多他们的定义,我准备在每个模式的实例中去引入用了哪些相关原则,这样我感觉要比上来都说概念的好。总之这些原则都在说一个事,解耦。但并非严格的要去机械式的遵循它们,还需要看场景。

感悟

设计模式是程序设计的底层基石,就像盖房子一样,没有一个好的设计,那么就不会有那么好的建筑,所以我们要学习它!学习的过程中绝非仅看看教程,敲敲教程中的demo就能OK的,有些理解可能需要花费很久,还需要在实战中,结合理论,才能得到思维链有效升华。真实的项目开发中,也不是什么都生搬硬套的去引入某个模式,可能这样还会造成系统的额外负担。不过在某些情况下,尤其是初学者,生搬硬套也未必是坏事,因为正在学习,必须要去实践。设计模式没有所谓的好与坏,只有遇到合适的项目,引入合适的模式。

教程说明

我个人认为很多初学者不愿意去看或者去学习标准的UML图(反正我是),因为我们可能缺乏它的系统知识,刚开始认知有些难。所以我可能会自己简单画出自己理解的图,或者不画图。

设计模式有很多,标准的有23种。但是经过多年的沉淀,经常使用的就那几种,所以我就准备分享常用的设计模式,以及最后分享几个目前流行的架构模式(设计模式的组合,MVC,MVP)每个代码,我都会同步到gitcode上,以便大家查阅

教程不适合刚学完编程语言的朋友,设计模式这门功课,需要少量的工作实战经验,否则刚开始都学习,会很吃力,而且也没有什么效果。

教程仅仅是自己对于设计模式理解的分享,由于自己也是个学习者经验非老道,所以面向的是初学者。如您认为讲解的哪里不合适,请留言出来,我们一起讨论并且改正!

最后不得不提GOF四人组了,这几位大佬为我们的设计模式提供了标准的概念,让我们这些后辈得以使用,感谢他们的贡献!

demo地址:GitCode - 全球开发者的开源社区,开源代码托管平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Diros2025

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

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

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

打赏作者

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

抵扣说明:

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

余额充值