23个设计模式,是不是技术人必学的?
GOF的设计模式确实经典,可太抽象,太难啃,难道就没有给人学的设计模式吗?分享一个小众的github宝藏项目,名称就叫“给人学的设计模式”。
项目名称:design-patterns-for-humans
项目地址:
https://github.com/kamranahmedse/design-patterns-for-humans
标星只有44.4K,在github算是小众的吧?
design-patterns-for-humans是一个怎样的项目?
这是一个个人项目,作者用极其通俗易懂(Ultra-simplified)的语言,极其简洁的方式(simplest way),以及直观的代码,解释经典的23种设计模式。
简洁到什么程度?
每一个设计模式,分为四个部分,5分钟搞定。
(1)现实中的例子(Real world example);
(2)通俗讲解(In plain words);
(3)Wiki介绍(Wikipedia says);
(4)示例代码(Programmatic example);
23个经典设计模式,2个小时全部看完,对设计模式的理解,又加深了!
以单例模式(Singleton)为例:
2分钟的时间,你已经把例子+白话+Wiki看完了。
画外音:优缺点说明,直接深度阅读(理解)。
2分钟的时间,你又把核心实现方法,以及使用方法看完了。
画外音:私有构造函数,禁止克隆,禁止继承,静态成员,静态函数。
当然,为了方便大家理解,有些设计模式有图形对比说明:
比如,使用or不使用桥接(Bridge)模式对比。
设计模式,是技术人最基本的基本功,每个人都应该掌握。但同时,作者也给出友情提示:
(1)设计模式,不能解决所有问题;
(2)不要为了使用而使用;
(3)设计模式只是工具,业务问题的解法,得自己找对工具;
(4)用错了工具,只会让代码变得更糟。
好了,不多说了,有了“给人学的设计模式”,妈妈再也不担心我搞不懂设计模式了。有个朋友说,这个项目不用收藏,2个小时,就看完啦。
有人说,不用设计模式,照样写代码,你怎么看?
帮忙分享给有需要的朋友,谢转。