千万别用设计模式?

设计模式中工厂模式的实现 智能家居的编程思想设计模式,工厂模式的实现 阅读详情

面向对象的设计模式(以下简称DP)是22年前GoF四位大师共同著述的,今天依然在设计中发挥重要的指导作用。

但是如果没有一定的实际开发经验与代码编写量,或者为了设计模式而设计模式,那么建议还是暂时不要管它。

建议从最简单的KISS原则开始,或者从一定的代码量后,追求可读性追求更高目标,可以先做一系列重命名提取方法等基础重构。之后如果仍然觉得代码依然缺乏优雅的特性,再考虑重构到设计模式。

总而言之,设计模式不应该生搬硬套塞进代码里,而是应该根据需要,从代码中自然生长出来。

640?wx_fmt=png

作者 | 冰果

20多年历史的设计模式

20年多前,软件设计领域有四位大师(GoF,Gang of Four,即Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides 俗称“四人帮”)。他们通过著述《设计模式:可复用面向对象软件的基础》这本经典之作,阐述了设计模式领域的开创性成果。 

最近,在朋友圈看到朋友转发的一段马云的讲话。马云说:如果你发现你的朋友,长期做一件事,你观察他6个月,如果他还在做,你也刚好有需求,你就找他了解一下!如果他做了一年,还在做,说明这个事情肯定不错,你一定要找他好好了解一下!

如果他做了3年还在做,而且越做越好,越做越努力,说明这个事情是他的目标,你一定要跟他一起做。

如果他做了5年还是在做,而且不顾一切的做,说明这个就是他的生命,一个用生命做视野的人,你无论如何要跟上他,因为,只有跟上那些用生命做事业的人,才能带你去到比你想要去的更高的位置!因为如果不好,他早就不会做了,如果是骗子他也早都消失了! 

看设计模式书有时候很无聊,我们不妨先来考察一下设计模式这本书的4位作者,结合一下马云的讲话,看看他们是不是『骗子』,是不是早就消失了,是不是搞了一个『设计模式』这个骗局之后就不干这一行当了。 

下图中,4位作者站成一排的照片是在OOPSLA 大会上1994年拍的。下面的大头照是我从谷歌搜到的最新的照片,当年的大师也扛不住岁月这把杀猪刀啊。我们不按照书的作者顺序来,而是按照上面1994年拍的一张合影从左到右来。   

640?wx_fmt=png

首先是Ralph Johnson 博士,生于1955 年 10 月 7 日,现60 岁。他2015年在reddit上的留言道:

我从1985年到2012年都是CS教授,然后退休后开了一家公司,负责构建一种最终用户可以编程的会计系统。最爱的编程语言是Smalltalk,最近几年用Java和Groovy多。

1978年结婚,现在有3个小孩1个龟孙。其中有一个小孩当了码农。我觉得编程仍然是充满乐趣的事情,并且大部分时间都花在上面。 

其次是Erich Gamma 博士,1961 年 3 月 13 日生于瑞士苏黎世,现55岁。与肯特·贝克共同创作了JUnit;两人也曾共同投入Eclipse的开发与软件架构设计。曾服务于IBM公司。2011年8月加入微软公司,负责Visual Studio Code的开发。从其github上的账号emamma来看,其开发提交活动依然非常活跃。 

再次是Richard Helm博士,生辰不详。1988-1993年(5年)在IBM研究院Thomas J. Watson研究中心担任研究员。1993-1995年在DMR GROUP担任工程师。1995-2000年在IBM Consulting Group担任咨询师。2000-2002在Boston Consulting Group的子公司Platinion工作。

2002年5月至今在担任Boston Consulting Group的合作伙伴。根据其在领英的自我介绍,目前主要工作在于帮助客户利用最新技术提升他们的业务竞争力。 

最后是John Vlissides博士,1961年8月2日生。1986年在斯坦福大学担任软件工程师、咨询师、研究学者。1991年起,在IBM研究院Thomas J. Watson研究中心担任研究员。 2005年11月24日感恩节在家中因脑癌去世。当时消息出时,全世界各地的程序员也为此感到震惊,因为时年仅44岁。

看完GoF的现况介绍,有种什么感觉呢? 

什么? 感觉没有一位发财嘛!

对的,学设计模式,发不了财。想发财可能需要去研究研究商业模式而不是设计模式。如果想通过学设计模式发财的,还是绕路吧。 

这么老了还在写代码? 

对的,谁说写代码只能是30岁之前干的活。想30岁之后写代码写不下去了,打算转管理线或者转产品旺的,其实也不用着学设计模式,还是省省别费那个脑力,绕路走吧。Ralph都当爷爷了仍然还在写代码呢,这是一种什么情怀啊。

竟然没有出后续书籍? 

对的,人家觉得这一本就是经典,其他的只能是锦上添花。况且相关锦上添花的书海了去了,其实没必要凑这个热闹。 

竟然没有出来维护它? 

对的,网上有一些言论说它过时了,说它太难了。人家说,设计本来就没那么容易的。20多年前的Small Talk语言是面向对象语言的鼻祖的地位依然没有动摇呢。计算机系统也依然是N年前冯诺依曼体系结构,并没有发生任何变化啊。  

20年多年了,有人说设计模式陈旧过时了,有人说设计模式太难了。我们回过头来看看2009年有一个对GoF三作者的采访(采访详情,可以自己谷歌)时,Ralph说,大多数程序员都不是被聘请为编写一个可重用的软件,但是你必须知道一个可重用的软件是如何工作的,我们的模式是重用软件的通用方式,如今他们还是有用的。软件设计是难的,这正使它变得有趣,善于软件设计的人会从解决难问题中得到乐趣:将混乱变得秩序,克服困难。

从作者本身来说,他们并没有认为设计模式过时了,只是由于技术的进步,可能有些模式消失了或者变成一种隐性的存在,Ralph的话值得好好读上3遍。  

设计模式不是灵丹妙药

有人说设计模式很好。错。设计模式其实是中性的,无所谓好坏。有些模式应用的较少一些,有一些模式在某些场景下还是反模式,比如Singleton。 

有人说设计模式很复杂。错。有的模式其实非常简单,比如模板方法模式。有些比较复杂,比如访问者模式。平均而言,简单的模式比复杂的模式用的更多。 

有人说小项目中没必要设计模式。多小的项目算小项目呢,其实只要经过良好的设计一个项目也可以不包含任何设计模式。但是也可能包含多个设计模式,但是跳过比较复杂的结构和行为模式,比如访问者模式或者责任链模式。 

有人说使用设计模式需要熟练的开发人员。对于相对复杂的模式来说这个说法是部分成立的,但是绝对不是所有模式。 

有人说使用设计模式会提升项目成本。不一定,如果设计模式使用的恰当的话。但是如果缺乏设计或者设计不良好,或者错误的(包括滥用)应用了设计模式,那肯定是会提升项目成本。 

有人说设计模式会使得代码干净整洁。其实所有的代码都应该保持干净整洁,无论是否显式地应用了设计模式。 所以,设计模式不是万能的,它是中性的,不是所谓的灵丹妙药,如果不恰当的使用,反而会带来问题(比如设计臭味)。

先学会KISS懒人原则

这个可比设计模式简单多了 !

翻一遍设计模式的书,很多人就开始晕倒了。怎么一个个模式看UML类图,怎么那么像啊,Proxy模式与Docorater模式等简直就是没有二样。

嗯,确实是这样子的,我当初初学设计模式时,实际上也是这种感受。只是为了给别人讲解设计模式,我是硬着头皮再看第二遍第三遍…… 

所以,从我的经验出发,如果你不是为了给别人去讲设计模式,那么可以暂时把它放在一边,先学一个简单的原则吧,它叫做KISS。

对,就是大写的KISS。小写的kiss那是小爱,大写的KISS才是大爱。什么工厂方法模式抽象工厂模式,太过复杂,为啥不直接new一个对象呢,你看多简单。 

什么?还不知道什么叫KISS?那就赶紧查查看吧,其实,很简单的,http://www.acronymfinder.com/KISS.html 。

KISS就是Keep It Simple & Stupid、Keep It Slim & Sexy、Keep It Short & Safe、Keep It Silly & Sound、Keep It Simple, Spiritually等,这些简单四级单词还给英语老师他老人家也不收的。

再看看Unix哲学:小即是美、让每一个程序只做好一件事情、尽快建立原型、舍高效率而取可移植性、使用纯文本文件来存储数据…… 

640?wx_fmt=png

实践上怎么玩KISS呢,首先你得从源头上下手,客户和产品旺经常提的需求除了干什么外,还经常夹带私货,就是要求你“怎么干”。

如果你觉得需求有问题,可以义正言辞的“拒绝”之,给他指出个一二三,让他们先好好想去,说不定想想就没了呢。

如果夹带了还要求你怎么干时,此时你可不能被牵着鼻子走。怎么干是实现的事,码农应该最有发言权了,我们此时应该开动脑筋,设计出最简单的解决方案。

简单的方案一般是恰到好处地实现了当前的需求,逻辑清晰结构简单,没有多余的肥肉,能快速地编码测试并上线。 

举个栗子,某个需求,你原始用1000行代码搞定了,但是经过Code Review一下之后,KILL掉其中的800多行,还剩200行不到,这就是一种KISS的体现。

写简单少量的代码,不但花费的时间少错误少,而且修改起来也容易。 

再举个栗子,又某个需求,是要求增加一个替身登录的功能,这样子就可以披着别人的『羊皮』却以自己的用户名密码登录进系统,使用替身角色的做一些事情。

常见的做法,是新增一个特定登录入口界面,里面除了输入自己的用户名密码之外,还要求选择具体『羊皮』,以确定是作为谁的替身进入系统。KISS一点的做法,那就是不新增页面,已有登录页面也不改动,只是在用户名输入栏中使用『用户名@替身』来完成实际替身的选择工作。

Norris常数与重构到模式

有这么一个常数叫Norris常数,说的是一个未经培训的码农在他遇到瓶颈之前能写出的平均代码量大概是2000行。

640?wx_fmt=png

超过之后,代码会变得混乱不堪,以至于本人都无法轻松地进行调试和维护。       

什么?你写的有效代码还在2000行以下,你就想折腾设计模式了,我建议你还是先攒点代码量吧!

这就好比,你最多就跑过5公里,突然有一天,你心血来潮觉得跑马拉松很时髦,就找了个名额去也去试一把一样,如果摈弃天赋之外,基本上结果就是会“死的”比较惨。    

什么?你只是觉得完成日常工作就OK了,代码刚写完能跑就OK了,自己的代码除了找BUG没办法多看上一眼之外,根本不想看第二眼第三眼的话,我也建议你别扯什么设计模式了。

设计模式是给那些对代码有追求的人准备的。每一行代码对于有追求的码农来说,都是一行现代诗的诗句;每一段代码,都是在叙述一个不一样的故事。       

如果你很努力,代码量很快就到达了2K了,是不是就要找一本设计模式的书来看看看呢?

我很负责任的告诉你,此时,你需要找的是一本重构的书,而不是设计模式的书。先学学重构,把命名搞的有意义,把函数拆的小一点,把风格写的好看一些。等这些都搞定了,再来玩设计模式吧,然后就可以直接高级重构到模式了。 

先从一个能达到的小目标开始

说了这么多,还挡不住你学设计模式的热情,那么建议你就从一个小目标开始吧,比如先学策略模式和模板方法模式。     

640?wx_fmt=png

这里就不展开讲这两个模式了,只是提醒一下,策略模式的意图是与算法相关的。 比如算命,有人喜欢相面有人喜欢相手有人喜欢看八字,这就是不同的算法。

模板方法模式是与套路相关的,比如追妹三步曲,第一步引起注意第二步聊上第三步牵上,这都是套路,但是对于南方妹纸和北方汉纸,可能具体的方式不一样,那就可以有两套具体的模板:南方追妹纸具体模板和北方追汉纸具体模板,都继承自追妹的抽象模板。     

但是网上所有的讲解设计模式的例子,基本上都有一个问题,那就是为了设计模式而设计模式。你可以看到一个父类下面两个不同的子类,实现都是一两句话的内容。

如果实际开发中也这么使用的话,基本上又命中了另外一种代码坏味『懒惰类』,就是一个类干的活太少了太瘦了,不足以称之为一个『类』了。

一个类应该有一定的体型,不胖不瘦才是最好,胖了就要分拆,瘦了可能就需要合并。所以真正的码农都是有某种『洁癖』的。 

总结

总而言之,对于缺乏实际编码经验,或者代码量写得太少的童鞋们,建议是先不要碰设计模式了。

如果为了应付面试,或者想先大致了解以方便吹牛,那么就从简单的模式开始吧,首先理解其意图任然是最重要的事情。     

640?wx_fmt=png

最后一句话,设计模式应该从代码中自然生长出来,而不是你强制添加上去的。意味着,常见设计模式的应用,一般都是通过持续重构来获得。


往期精彩回顾

我是一个线程

关于老刘和码农翻身

我是一个Java Class

面向对象圣经

函数式编程圣经

TCP/IP之大明邮差

CPU阿甘

我是一个网卡

我是一个路由器

一个故事讲完HTTPs

编程语言的巅峰

Java:一个帝国的诞生

JavaScript:一个屌丝的逆袭

计算机视觉安防监控升级:人脸识别与行为异常检测 计算机视觉安防监控升级:人脸识别与行为异常检测 ,人工智能,计算机视觉,大模型,AI,本文将深入探讨人脸识别与行为异常检测技术在安防监控中的应用,包括技术原理、算法实现、应用场景以及面临的挑战与解决方案。通过实际案例和代码示例,帮助读者更好地理解和掌握这些技术,为推动安防监控系统的智能化升级提供参考。 阅读详情

相关推荐

IEEE Access投稿全流程:从LaTeX模板到Overleaf实战(附避坑指南)

本文详细解析了向IEEE Access期刊投稿的完整流程,重点介绍了如何使用LaTeX模板在Overleaf平台上高效撰写和格式化论文。内容涵盖模板选择、作者信息填写、公式图表排版、参考文献管理(BibTeX)以及投稿前的最终检查清单,旨在帮助研究者,尤其是LaTeX新手,规避常见技术问题,顺利完成符合期刊严格要求的稿件提交。

open4的博客 578

学了那么多年设计模式依然不会用!那可真蠢!

什么是设计模式?设计模式(Design Pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题...

架构师小秘圈 1200

python语言下使用opencv接口cv2.VideoCapture()接口调用海康机器人工业相机

文章目录 目录 文章目录 前言 一、opencv接口介绍 二、调用海康机器人工业相机 1.使用海康机器人工业相机的前提 2.调用海康机器人工业相机进行显示 3.调用海康机器人工业相机进行存图 4.调用海康机器人工业相机存视频 5.调用海康机器人工业相机进行简单图像处理 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下.

qq_39570716的博客 1万+

设计及设计模式:对于模式的“十大误解”

 现在“模式”这个词真是非常流行。就象任何流行的东西一样,对它的误解也真是不少。甚至在一些发表出来的文章中,也存在着各种各样的误解, 我想这会对读者造成非常糟糕的引导作用。早已想写一篇文章来澄清一些对模式的误解,却又因为水平所限难以成文。恰在此时, 我看到John Vlissides先生的《十大误解》,于是我便乐得当文抄公了。??关于设计模式,下面有十种错误的观点??很多都是很流行

kinglino520的专栏 471

LSTM预测股票数据---数据预处理

# 导入相应的模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf # 获取训练集 def get_train_data(data,batch_size = 60 ,time_step = 20,train_begin = 0,train_end = 58...

qq_35358021的博客 3360

BLE蓝牙胎压监测

胎压监测系统新技术

qq_41851841的博客 1255

关于设计模式的几点误区

现在的设计模式越来越火,很多人动不动就说设计模式,好像设计模式无所不能,使用了设计模式的程序就好像拥有了无上的法力。本人见到很多的人在自己的博客中详细的讲解各种设计模式的使用场景和使用方法。本人觉得这些文章虽然给不了解设计模式的人员加深理解和学习的机会,但是同时也给更多的初学者一种误区!下面就来详细的说明这些误区:一、过度设计设计模式提倡的是面对变化,产生变化时能够对变化及时的进行修改

tolly2007的专栏 595

30天入门 SAP BTP 开发系列之七:动手在 SAP BTP 上开发第一个 ABAP 程序

本教程从理论转向实践,指导如何在SAP BTP上创建首个ABAP程序。首先通过Booster向导在Trial账号中配置ABAP环境,需确保已启用Cloud Foundry并创建Space。成功创建ABAP实例后,使用ABAP Development Tool连接环境:下载服务密钥文件,导入工具获取连接URL,即可建立项目开始编码。教程提供了从环境搭建到开发工具配置的完整流程,帮助ABAP开发者快速上手BTP云开发。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1685

Spring MVC 过时了吗?

有个读者问: Spring MVC 过时了吗?提出这个问题时我对spring这一套体系还是懵懵懂懂一知半解,现在我已经对该问题有了更全面的认识,我也开发了一些基于ssm的前后端分离的系统。 现在jsp似乎已经渐渐淡出大家的视野。 web开发朝着前后端分离的方向去了 像spring mvc这样前后端耦合较大的框架是否过时了? 回答: 首先给出结论:Spring MVC没有过时,它仍然是当前主流的Java Web开发框架。但是,在这个时间点谈论这个问题就有点意思了。题主提出这个问题的时候,可能都没有意识

qq_41293655的博客 812

解决微信小程序长页面滚动到底部点击底部的输入框后输入框漂浮且页面滚动到顶部

一、问题描述 项目中有一个长页面上部展示部分信息下部为信息录入,页面长度为三屏幕(不同手机屏幕大小略有差异),当滚动到第二屏或者第三屏去填写信息时点击输入框后输入框漂浮起来了并且页面向上滚动了一段距离,回到了第一屏中展示的内容。效果如图。 滚动到第二屏,证件号输入。 点击输入框 可以看到证件号输入框漂浮了起来并且页面滚动到了第一屏展示的内容。 注意:小程序是2018年上线,在2020年4月份之前该页面从未出现过这种现象。推测:微信的后续更新中对微信小程序基础库进行了重构,导致点击输入框后页

仰望星空的代码 3262

读懂 ABAP CDS 注解的直接、继承与派生

本文系统梳理了ABAP CDS注解的评估逻辑,重点解析直接注解(Direct)、继承注解(Inherited)和派生注解(Derived)的差异及其在CL_DD_DDL_ANNOTATION_SERVICE中的处理方式。通过视图注解@Metadata.ignorePropagatedAnnotations可调控注解传播行为,避免下游语义影响上层视图。文章还提供了基于标准表的完整示例(包含底层视图、消费视图和ABAP报告程序),帮助开发者在实际系统中验证三层注解的叠加效果与阻断机制。关键点包括:派生注解的数据

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 246

设计模式开坑

为什么学习设计模式? 应对面试中的设计模式温习 少些烂代码 提高复杂代码设计和开发能力 让读源码,学框架事半功倍 为职场发展做铺垫 常用评价代码质量高低的标准 常用:可维护性、可读性、可扩展性、灵活性、简洁性、可复用性、可测试性 最重要:可维护性 、可读性、可扩展性 如何写出高质量代码? 掌握面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等 面向对象基本概念 面向对象四大特性:封装、抽象、继承、多态 面向对象编程与面向过程编程的区别和联系 面向对象分析、面向对象设计、面向对象编程 接口和

L1ak的博客 431

华为OD机考双机位C卷 - 斗地主之顺子 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 斗地主之顺子(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 9695

设计模式之道

设计模式之道 读书摘要 知易行难—设计模式应用的问题 “形而下者谓之器,形而上者谓之道。”—《易经*系辞》 正如许多流行的技术(面向对象、UML等)一样,几乎大部分人都会宣称自己“掌握”、“熟练掌握”、甚至“精通”,然而,真正掌握或者精通的实在是少之又少。 一个典型的现象是:很多人能够熟练背诵出所有的设计模式,能够快速画出各种设计模式的UML类图,也能够熟练地写出《设计模式》一书中各个模式的样例代码。但一到实际的项目实际和开发的时候,往往能够都会陷入迷茫:要么无从下手,不知道哪个地方要用到设计模式;要么生

宁静致远的博客 737

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java设计模式-单例设计模式

java开发23种模式-单例设计模式 简单说一下 单例设计模式:单例模式(Singleton Pattern)可以说的上是java设计模式中最简单的一种,这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种唯一的对象的方式,可以直接访问,不需要实例化该类的对象。换句话说单例对象能保证在一个JVM中,该对象只有一个实例存在,无法在进行实例化。 稍微夸一下 ...

Thinkao 的博客 178

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Redis中scan命令踩坑,本文告诉你千万别乱用!!不看后悔

然后,我就开始直接写lua脚本。首先是筛选。用过redis的人,肯定知道redis是单线程作业的,肯定不能用keys命令来筛选,因为keys命令会一次性进行全盘搜索,会造成redis的阻塞,从而会影响正常业务的命令执行。500w数据量的key,只能增量迭代来进行。redis提供了scan命令,就是用于增量迭代的。这个命令可以每次返回少量的元素,所以这个命令十分适合用来处理大的数据集的迭代,可以用于生产环境。scan命令会返回一个数组,第一项为游标的位置,第二项是key的列表。如果游标到达了末尾,第一项会返回

2401_84011132的博客 789

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

无废话设计模式:开篇

jun2ran的专栏 881

设计模式

在学习设计模式之前,我觉得有必要弄清楚几个问题 1、框架 和 设计模式 是一个概念吗? 很多时候,我们会把框架和设计模式混淆。 比如我们经常说的mvc,你说它是mvc 框架?还是mvc模式?还是? 相信有一部分人不确定了,说 “然并卵。” ,假如我成为 hr 一定会问这个问题,偷笑。MVC 框架 、MVC编程模式、MVC编程思想或者MVC框架模式都行,但是千万别说 MVC设计模式。

背包下的影子的博客 475

无废话C#设计模式之一:开篇

来源:LoveCherry - 博客园  什么是设计模式?什么是少林拳呢?少林拳是少林僧人经过长期的总结,得出的一套武功套路。有一本叫做少林拳法的武功秘籍,上面记载这这套拳法的适用人群,打法套路和学成后的效果。设计模式虽然记录在了设计模式一书上,但是要真正掌握设计模式光靠看每一个模式的结构并且进行模仿是不够的。试想一下,在真枪实战的情况下,谁会和你按照少林拳法,一二三四的套路打呢?打套路也只能用来

TonyWang的专栏 992

设计模式学习大体总结

一个月带着读看完了设计模式,其中有一些模式真的是被坑着了,比如composite组合模式如果不用叶节点,真说不出有什么特性。再比如备忘录模式,我觉得这个模式的核心是打包传递数据,而不是用来备忘。好了,先写一个总结,以后慢慢消化 每个模式如果细说肯定不是三言两语可以概括的,但是需要简略概括,才能快速理解。 ==================================...

dongfushu7972的博客 133

Tomcat 设计模式总结(Tomcat源代码阅读系列之八)

本篇我们将来分析一下Tomcat中所涉及到设计模式,本文我们将主要来分析外观模式,观察者模式,责任链模式,模板方法模式,命令模式。  在开始本文之前,笔者先说明一下对于设计模式的一点看法。笔者曾经经常看到网上有人讨论设计模式,也偶尔会遇到有人非要严格按照GOF设计模式的类图以及其中的角色去套用别人的设计,只要类图不一样,或者角色多了或者少了就会觉得怎么和官方定义的模式不一样,其实这都是对设计模式

jiaomingliang的专栏 6093

面试大厂简历上千万别写“精通XXX”,面试官会问到你怀疑人生

我自己有一个习惯,每次面试后我都会进行复盘总结。一来也让我清楚自己对哪方面掌握得还不够;二来也大概清楚了面试的方向,让自己在面试前有侧重点地去复习准备。这样一套下来,面试成功并且拿到高薪 offer 的几率一定会高很多,大家可以去尝试一下。毫无疑问,这次死磕到底的 redis 我自然也有整理好,整理好之后我发现这些知识不仅可以用于面试,在工作中都非常有帮助。好东西要大家一起看才香,谁需要就在文末领取!Let’s Go。

2401_84046545的博客 996

<Head First设计模式>书评

学习设计模式有一年多了,最早是学习java时各种技术书籍上都爱写上MVC字样。MVC在我心中成为一个很牛逼,很流行的技术。但是,直到现在,对MVC还不甚了解。呵呵。后来看一些设计模式的书籍,包括重构。那些经典,虽然感觉出来的确经典,感觉出很有道理,但是,却依旧迷茫。就如读《道德经》,捧起来有种一览万物之道,蓦然间觉得自己境界上了一个档次,但是终究如镜中花,水中月,对许多道理依然捉摸不定。 后来看...

weixin_30576859的博客 90
上一篇: 为什么RESTful很糟糕?
下一篇: 我觉得微信7.0的“看一看”还是不行
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值