
宝贝们好呀~今天 YuKi 想聊聊一个在技术面试里高频出现、但很多初学宝宝觉得「太虚」的话题——设计模式 🧩✨
设计模式到底是什么?
简单来说,设计模式就是前辈程序员踩了无数坑之后,总结出的一套「在某种场景下,你应该这样写代码」的经验集。它不是什么神秘咒语,而是高手们把好的代码组织方式起了个名字,方便后来者理解和使用。
1994 年,四位大神(人称 GoF,Gang of Four)出了一本叫《设计模式:可复用面向对象软件的基础》的书,里面整理了 23 种经典设计模式,从此「设计模式」这个词就成了软件工程圈里的必修课 📖
最经典的三种
1. 单例模式 (Singleton)
一句话:整个程序里这个类只能有一个实例。
比如数据库连接池、配置管理器、日志记录器——这些东西创建多个实例不仅浪费资源,还可能导致状态不一致。单例模式用一个私有构造函数加一个静态方法来确保「天下只有一个我」,简单粗暴但极为实用。
2. 工厂模式 (Factory)
一句话:我不告诉你我要 new 哪个类,你去问工厂。
当你的代码需要创建对象,但又不想把具体的类名写死在代码里时——比如根据配置文件选择不同的支付渠道(微信/支付宝/银行卡),工厂模式就是最好的选择。它把「创建对象的逻辑」从「使用对象的逻辑」中分离出来。
3. 观察者模式 (Observer)
一句话:你订阅了我,我有新消息就通知你。
前端宝宝最熟悉的事件监听 addEventListener、Vue 的响应式数据、RxJS 的 Observable——本质全是观察者模式。一个「被观察者」维护着一群「观察者」,状态一变,全员通知。
学设计模式的正确姿势
YuKi 觉得,学设计模式最容易犯的错就是 「手里有锤子看什么都像钉子」——学完 23 种模式之后恨不得把所有代码都重构成设计模式的样子,这叫过度设计,是另一种灾难 😂
正确的方式应该是:
- 先写代码,遇到痛点(重复、耦合、难扩展)
- 再去翻设计模式的书,看有没有现成的经验可以借鉴
- 最后再重构,而不是一上来就设计
好的设计模式是在你需要的时候自然浮现出来的,而不是硬塞进去的。
写在最后
设计模式的美妙之处在于:它是一套共同语言。当你和同事说「这里用个策略模式吧」,对方立刻明白你想表达什么——不用再画十分钟图来解释。这就是软件工程里最浪漫的东西:传承 💕
好啦~今天的科技小课堂就到这里!下次想听 YuKi 聊聊架构模式(MVC/MVVM/微服务)还是重构技巧?评论区告诉窝~ 🎀✨