系列文章目录
第一章 设计模式故事会之楔子:面试还在回答策略、工厂?该升级设计模式库了! 第二章 设计模式故事会之策略模式:魔王城里的勇者传说
@TOC
🌞一、引子
窗外,蝉声连绵,阳光透过百叶窗洒在桌面上,把屋子照得斑驳。屋里闷热得像密封的玻璃罐,风扇呼呼转着,却带不走粘在皮肤上的暑气。小A 坐在电脑前,手里握着快化的冰水,笔记本上堆着算法题、数据结构和面试资料。他无意识地刷了一眼朋友圈——全是海边的浪花、冰淇淋的甜香、孩子们的笑声。别人暑假玩的热闹非凡,而他,却在闷热的屋子里刷着无聊的面试题
“让他们玩去吧,我背着他们偷偷学习,到时候惊艳所有人!” 小A 嘿嘿笑道,他正在备战明天的面试,为了进去心仪的公司,小A 也是豁出去了,最近一段时间哪也不去,就在家里狂刷面试题
时间一分一秒过去,夜色悄然降临,蝉鸣声不再刺耳,而是融入了背景,成为一段轻柔的合奏。小A伸了个懒腰,骨骼发出清脆的响声。他揉了揉酸痛的肩膀,拿起快喝完的冰水,感到一丝疲惫。看了网上的面试题大全,也刷的七七八八了。只剩最后一块:设计模式
“差不多了。”他自言自语道,“设计模式 问来问去,就那几个,什么工厂,策略。没什么新意,就吃老本吧,不看了不看了,开始休息亿会儿。” 想到这里,小A 就开启躺平模式,躺在床上,刷着手机,时不时发出杠铃般的笑声。。。
😰一场并不愉快的面试
第二天,面试如约而至。阳光洒在窗台上,给书桌镀上一层柔和的光晕。小A 深吸一口气,整理了一下衬衫的领口,手指在鼠标上轻轻敲击,试图驱散内心的紧张。电脑屏幕上,他刚点开了面试官发来的会议链接
画面一闪,一张温和而专注的脸出现在屏幕上
“你好,小A。”面试官微笑着开场。
“您好,面试官。”小A 自信地回应,他在心里默默的过了一遍昨天背的面试题
“我们先从基础题说起吧,”面试官语气温和,“你能解释一下 策略模式 和 简单工厂 的区别吗?”
小A心里默念:稳,基础题。当下滔滔不绝道:“策略模式 是把一系列算法封装成独立类,运行时可以灵活切换。至于 简单工厂 嘛,就是集中管理对象创建,把调用者和具体实现解耦。”
“嗯,回答得不错。”面试官点头,“那 策略模式 和 状态模式 有什么异同呢?”
小A 心头一跳:完了,没有背到,没招,从名字入手吧,深吸了一口气,说道:“状态模式……呃,是对象状态变化时行为改变……策略模式 是行为可替换……呃……都是改变行为……区别……可能在封装方式吧?” 刚说完,小A 就想抽自己两耳瓜子,磕磕巴巴的,啥玩意
面试官轻轻皱了皱眉,又问:“那你觉得 设计模式 的本质是什么?为什么要用?”
小A 努力整理思路:“本质……嗯……解耦、复用、可维护……提高灵活性……这些吧……有点像把算法和使用它的对象分开?”
“很好,你觉得策略模式能解决什么问题?有没有局限?”
小A 停顿了一下,眼睛微微瞪大:“解决……解决算法切换……动态选择……但局限……呃……需要管理不同策略实例,可能会很杂乱吧……?有时候还是得判断哪个策略合适。”
面试官微微一笑,眼神中带着审视:“嗯,明白了。谢谢你的回答。”
会议结束后,小A 靠在椅背上,揉揉太阳穴。他的自信逐渐消散,被一连串问题拆解得七零八落:定义记得清楚,实际理解却乱了套。他意识到,背书是不够的,必须真正理解 设计模式
📖一本有趣的书
小A 网上胡乱刷着,看了好几篇文章都是千篇一律,什么 开闭原则、依赖倒置、里氏替换……这些生硬的概念就像冰冷的字典词条,毫无温度,看得他昏昏欲睡。他揉了揉酸痛的眼睛,心里嘀咕:“难道就没有一本有趣的、像小说一样的书,能把这些东西讲明白吗?”
他继续漫无目的地滑动着鼠标,正当他准备关掉网页时,一个与众不同的标题映入眼帘 《设计模式故事会》,故事会?不讲概念吗?小A 好奇的点了进去。。。。
📝总结
在面试官的连环追问下,小A 败下阵来,意识到自己的不足,想学 设计模式,那些概念有看着让人头疼。那 小A 发现的博客能否让他理解 设计模式,且听下回分解!!!