Design 对设计模式的思考
最是真情留不住,总是套路得人心。
大家好,我是笨笨的程序员饭饭,今天我想和大家聊一下设计模式。
在我还是一个菜鸟小白的时候,曾经遇到过一个让我一剑诛心的问题,你知道数据结构和算法吗?这个问题在我以后的睡梦中常常过来光顾,一抹邪笑,留下我独自惊醒。基于此我购买了人生中第一本技术书大话设计模式。
这么多年下来反思总结,得出了一个结论,不管是算法还是设计模式它们有一个共同的名字叫做套路。
所谓套路就说有一个固定的方式让你可以参考,解决某一类特定的问题。
算法就是解决业务实现过程中的套路。设计模式就是解决工程实践中遇到的套路。
所以我建议以后面试可以这样提问,你知道多少工作中用到的套路。妥妥的打开思路。
这让我想起来一个事情,就像UNIX系统中的哲学思想,一切都是文件。在工作中一切皆是套路。
你知道多少套路就能快速解决多少问题。所以很多面试官喜欢考察数据结构和算法。
中国武术兵器有刀枪剑戟斧钺钩叉拐子流星锤。作为一个打架的,你可以不都会,但必须都了解。要不然与人捉对厮杀,对方使出流星锤,你一刀砍出被人缠住,这就尴尬了。 和这一样,工作中你接手一个老项目,都能运行正常,就是内部实现很乱,就是看不懂。要求你做些增量开发,添加一些功能,无处下手的时候,也是比较尴尬了。 你可能会说我就喜欢做新项目,但是要知道不管什么样的项目最终都会成为屎山,就是项目死了,他也是一座死屎山。
这个时候如果你知道适配器模式,你就有了思路。当然今天这个不是重点。我们拉回来。
套路如此重要,以至于你可以在任何地方都能感受到套路的存在。就比如pua,作为一个单身男女,孤独的生活总是寂寞的。而我们想要解决这一个问题。就需要懂一些PUA上面的套路。或者说一些心理学上的小知识。我在程序员的自我修养中获得的最重要的知识点就是。如果复杂度超出了你的控制那么最好的一个办法就是加一个中间层。所以我们可以看到网络的分层设计。操作系统的数据访问结构设计:寄存器,高速缓存,内存再到磁盘。类似的还有后端的高可用架构的设计。所以我们得出一个结论,万物皆可分层。分层就是是解决复杂度的套路。我们的设计模式中当然也有类似的套路。就比如门面模式。建造者模式。状态机模式。他们都有一个相似的套路那就是提供一个对外的统一的接口。
最是真情留不住,总是套路得人心。
今天就先讲到这里。我是笨笨的程序员饭饭。欢迎大家收听我的下一期节目。再见!