Vibe Coding 全栈专业名词清单|设计模式·核心篇(行为型+设计原则名词)

0 阅读9分钟

家人们,基础篇看完,是不是觉得设计模式也没那么可怕?这篇核心篇,才是重头戏——行为型设计模式,堪称“全栈打工人的效率天花板”,日常开发中用得最多、最值钱,再加上设计模式六大原则,帮你写出“别人看得懂、自己好维护”的代码,再也不用写“屎山代码”被同事吐槽!单篇阅读时长18分钟左右,全程诙谐写实,不搞枯燥说教,放心冲~

先唠句大实话:行为型模式为啥是核心?

image.png

如果说创建型、结构型是“搭骨架”,那行为型模式就是“让骨架动起来”——它管的是“对象之间怎么沟通、怎么协作”,比如怎么处理事件、怎么传递数据、怎么控制流程。全栈开发中,最头疼的就是“复杂逻辑、状态管理、事件流”,而行为型模式,就是解决这些头疼问题的“万能钥匙”,学会它,加班减半,效率翻倍!

一、行为型设计模式(全栈高频,必掌握)

重点挑日常用得最多的6种,不搞冷门的,主打一个“实用为王”,每个都配写实场景,看完就能用。

1. 观察者模式(发布-订阅,前端er的本命模式)

image.png

专业名词解读:一个对象(发布者)发生变化,所有关注它的对象(观察者)都会自动收到通知,并且做出相应的反应,不用主动去查询,主打一个“自动同步”。

写实场景:就像你关注了一个美食博主🍜 ——博主(发布者)更新了新的美食视频,你(观察者)就能收到推送通知,不用每天去博主主页刷有没有更新。在Vibe Coding里,前端的状态管理(Vuex、Pinia)、事件总线、消息通知,全是观察者模式的应用,比如你修改了Pinia里的状态,所有用到这个状态的组件,都会自动更新,不用手动去刷新。

吐槽时刻:别滥用观察者模式!如果观察者太多,发布者一更新,所有观察者都触发,页面会变卡,就像博主一次发100条视频,你手机直接卡死,得不偿失😂

2. 策略模式(解决“if-else地狱”的救星)

image.png

专业名词解读:把不同的算法、逻辑,封装成不同的“策略”,根据不同的条件,选择不同的策略执行,不用写一堆if-else判断,代码更简洁、更好维护。

写实场景:就像你去吃饭🍚 ——你有不同的吃饭策略:想吃快一点,就点外卖;想吃健康一点,就自己做饭;想吃好一点,就去餐厅。根据自己的需求(条件),选择对应的策略,不用纠结“我到底该怎么吃”。在Vibe Coding里,表单验证、支付方式选择、权限判断,都能用策略模式,比如表单验证,不同的字段(手机号、邮箱、密码)有不同的验证策略,不用写一堆if-else,后期要新增验证规则,直接加一个策略就行。

3. 命令模式(请求的“快递员”)

image.png

专业名词解读:把请求封装成一个“命令对象”,这个对象可以被存储、传递、撤销、重做,就像快递员,把你的快递(请求)送到目的地,还能帮你退回(撤销),适合需要记录请求、撤销操作的场景。

写实场景:就像你点外卖📦 ——你下单(发送请求),外卖平台把你的订单封装成一个“命令”,发给商家和骑手,骑手执行命令(送餐),如果你想取消订单(撤销命令),平台就能快速处理,不用直接找商家和骑手。在Vibe Coding里,撤销/重做功能(比如富文本编辑器、画图工具)、批量操作、日志记录,都能用命令模式,比如富文本编辑器的撤销操作,就是把每一步操作封装成命令,撤销时反向执行命令。

4. 迭代器模式(遍历数据的“万能工具”)

image.png

专业名词解读:提供一种统一的方式,遍历不同类型的数据结构(数组、对象、集合),不用关心数据结构的内部实现,就能依次访问每个元素,就像一个万能的“遍历工具”。

写实场景:就像你去超市购物🛒 ——不管是货架上的零食(数组)、冷藏柜里的酸奶(对象)、散装的水果(集合),你都能一个个拿起来看(遍历),不用关心它们怎么摆放的。在Vibe Coding里,遍历列表、筛选数据、分页展示,都能用迭代器模式,比如你写一个通用的遍历工具,不管是数组还是对象,都能统一遍历,不用写多种遍历逻辑。

5. 状态模式(对象的“情绪开关”)

image.png

专业名词解读:一个对象的行为,会根据它的状态变化而变化,就像人一样,开心的时候笑,难过的时候哭,不同的状态,有不同的行为,把状态和行为分开,代码更清晰。

写实场景:就像手机的状态📱 ——手机有电的时候,能正常使用(打电话、玩游戏);没电的时候,只能充电,不能使用;飞行模式的时候,不能打电话、连网络。不同的状态,手机的行为不一样。在Vibe Coding里,按钮的状态(禁用、正常、加载中)、表单的状态(编辑、查看、提交中),都能用状态模式,比如按钮禁用时,点击无效;正常时,点击触发事件,不用写一堆判断状态的代码。

6. 责任链模式(请求的“接力赛”)

image.png

专业名词解读:把多个处理请求的对象,连成一条链,请求从链的一端开始,依次经过每个对象,直到有一个对象能处理它,就像接力赛,接力棒(请求)依次传递,直到有人能接住并完成。

写实场景:就像你请假📅 ——你先找直属领导请假(第一个处理者),直属领导审批不了(比如请假超过3天),就把请假申请交给部门经理(第二个处理者),部门经理审批不了,就交给总经理(第三个处理者),直到有人审批通过。在Vibe Coding里,权限校验、请求拦截、错误处理,都能用责任链模式,比如接口请求的错误处理,先判断是不是网络错误,再判断是不是权限错误,再判断是不是接口本身错误,依次处理,逻辑更清晰。

二、设计模式六大原则(写好代码的“底线”)

image.png 如果说设计模式是“模板”,那设计原则就是“模板的底线”——不管用哪种设计模式,都要遵循这六大原则,不然写出来的代码,还是“屎山”,别人看不懂,自己维护起来也头疼,用诙谐的话总结,好记又好用!

1. 单一职责原则:一个对象只干一件事(别让它身兼数职)

image.png

写实吐槽:就像你是个前端开发,别让你既写代码,又做设计,还兼做测试,不然你会忙死,还啥都做不好。代码也一样,一个函数只做一件事,一个组件只负责一个功能,比如一个按钮组件,就负责点击事件,别让它还负责数据请求、表单验证,后期改起来,牵一发而动全身。

2. 开闭原则:对扩展开放,对修改关闭(别随便改老代码)

image.png

写实吐槽:就像你买了一件衣服,想让它更合身,你可以加个腰带、缝个补丁(扩展),但别把衣服剪烂了(修改原有结构)。代码也一样,后期要加新功能,就新增代码,别去修改原来的老代码,不然很容易引入新的bug,尤其是别人写的代码,你改完可能自己都不知道错在哪。

3. 里氏替换原则:子类能替换父类,还不影响功能(别搞特殊化)

image.png

写实吐槽:就像你去奶茶店,点了一杯珍珠奶茶(父类),店员给你换成了加芋圆的珍珠奶茶(子类),口感变了,但还是珍珠奶茶,不影响你喝(功能不变)。代码也一样,子类继承父类后,不能修改父类的核心功能,不然子类替换父类后,整个程序就乱了。

4. 依赖倒置原则:依赖抽象,不依赖具体(别绑死在一棵树上)

image.png

写实吐槽:就像你找对象,别只盯着“某个人”(具体),而是盯着“善良、真诚”(抽象),这样就算这个人不合适,你还能找到其他符合条件的人。代码也一样,不要依赖具体的类,而是依赖抽象的接口,比如你写请求工具,不要依赖具体的请求方式(axios),而是依赖抽象的请求接口,后期想换成fetch,直接替换实现,不用修改大量代码。

5. 接口隔离原则:接口要精简,别搞“大而全”(别让接口太臃肿)

image.png

写实吐槽:就像你去健身房,办了一张健身卡,只需要能健身、洗澡就行,别让健身房给你绑一堆你用不上的服务(比如美容、美甲),接口也一样,一个接口只提供必要的方法,别把所有方法都堆在一个接口里,不然用的时候,就算用不上,也得引入整个接口,浪费资源。

6. 迪米特法则:少管闲事,只和自己相关的对象打交道(别太“八卦”)

image.png

写实吐槽:就像你上班,做好自己的工作就行,别去管同事的私事、领导的决策,不然容易惹祸上身。代码也一样,一个对象只和自己直接相关的对象通信,别去访问无关的对象,比如一个组件,只和父组件、子组件通信,别去直接访问其他组件的数据,不然组件之间耦合太高,改一个组件,其他组件也跟着出问题。

核心篇小结(划重点,必记)

行为型模式:重点掌握观察者、策略、命令、迭代器,解决日常开发中的复杂逻辑、状态管理、事件流问题;六大原则:记住“单一、开闭、里氏、依赖倒置、接口隔离、迪米特”,写代码的时候多想想,别踩坑。这篇核心篇,不依赖基础篇也能看懂,单独看就是一本“复杂逻辑解决方案手册”,和基础篇拼起来,就是一套完整的设计模式理论体系,下次写代码,再也不用瞎写了!