架构相关联想记忆
架构风格联想
一、五大架构风格总览(武侠门派版)
架构风格 | 对应门派 | 核心武功 | 子风格(招式分支) |
---|---|---|---|
数据流风格 | 逍遥派 | 数据如内力流动,讲究“一气呵成” | 管道-过滤器、批处理 |
调用/返回风格 | 少林派 | 层级分明,讲究“根基稳固” | 主程序-子程序、面向对象 |
独立组件风格 | 唐门 | 暗器(消息)互通,各自为战 | 事件驱动、发布-订阅 |
虚拟机风格 | 星宿派 | 自定义规则,灵活但难控(小无相功) | 解释器、规则引擎 |
仓库风格 | 藏经阁 | 数据为中心,万物皆可存 | 数据库系统、黑板系统 |
二、深度拆解(口诀+例子)
1. 数据流风格 → 逍遥派
-
核心:数据像内力在管道中流动,经过多个处理单元。
-
子风格:
- 管道-过滤器:咖啡机流水线(数据逐步加工,组件无状态)。
- 批处理:古代科举阅卷(收集所有考卷后统一批改)。
-
记忆口诀:
“数据如水流,过滤器加工,批处理攒够再动手”
2. 调用/返回风格 → 少林派
-
核心:层级调用,上层依赖下层结果。
-
子风格:
- 主程序-子程序:方丈(主程序)指挥弟子(子程序)练武。
- 面向对象:少林十八铜人阵(对象=铜人,通过方法交互)。
-
记忆口诀:
“调用如传令,返回似交旨,对象是铜人各司其职”
3. 独立组件风格 → 唐门
-
核心:组件通过消息/事件通信,彼此解耦。
-
子风格:
- 事件驱动:唐门暗器信号弹(事件发布后多方响应)。
- 发布-订阅:江湖情报网(丐帮订阅魔教动向消息)。
-
记忆口诀:
“组件似刺客,事件如暗号,发布订阅情报到”
4. 虚拟机风格 → 星宿派
-
核心:自定义规则或语言,灵活但难调试。
-
子风格:
- 解释器:星宿派毒经(自定义毒药配方规则)。
- 规则引擎:丁春秋的“化功大法”(按规则化掉对手内力)。
-
记忆口诀:
“虚拟机里规则怪,解释器读毒经,引擎化功要小心”
5. 仓库风格 → 藏经阁
-
核心:数据集中存储,组件通过仓库交互。
-
子风格:
- 数据库系统:藏经阁账簿(结构化数据,SQL查询)。
- 黑板系统:江湖悬赏榜(数据松散,各派自行读取更新)。
-
记忆口诀:
“仓库是宝库,数据库记账,黑板贴悬赏”
三、对比表格(解决混淆点)
对比维度 | 数据流风格 | 调用/返回风格 | 独立组件风格 |
---|---|---|---|
通信方式 | 数据流传递 | 直接调用 | 事件/消息 |
典型问题 | 数据延迟 | 层级耦合 | 事件丢失 |
代表系统 | Shell脚本管道 | Java Spring MVC | Kafka消息队列 |
对比维度 | 虚拟机风格 | 仓库风格 |
---|---|---|
通信方式 | 自定义规则执行 | 集中数据访问 |
典型问题 | 性能开销大 | 数据竞争 |
代表系统 | JVM解释器 | MySQL数据库 |
四、记忆技巧
- 门派联想:
- 想到“逍遥派”就联想数据流动(北冥神功吸内力)。
- 想到“唐门”就联想暗器消息(事件驱动)。
- 场景反推:
- 遇到“规则灵活但难懂” → 一定是虚拟机风格(星宿派武功诡异)。
- 看到“所有操作围绕一个中心” → 必是仓库风格(藏经阁是核心)。
- 极端例子:
- 纯管道-过滤器:Shell命令
cat log.txt | grep "error" | wc -l
。 - 纯黑板系统:多人协作绘画(画布是黑板,每个人随意修改)。
- 纯管道-过滤器:Shell命令
五、真题应用示例
问题:某电商系统需处理秒杀请求,要求高并发、低延迟,应选哪种风格?
分析:
- 秒杀需要事件驱动(唐门)快速响应,结合仓库风格(藏经阁)管理库存数据。
- 避免调用/返回风格(少林派层级调用太慢)。
答案:独立组件风格(事件驱动)+ 仓库风格(库存中心)。
掌握这个框架后,无论是考试还是实际设计,都能快速锁定架构风格!下次再混淆时,默念:
“逍遥流水少林塔,唐门暗器星宿邪,藏经阁里数据大”
——对应五大风格:数据流、调用/返回、独立组件、虚拟机、仓库。
架构风格的本质就是 :构建如何组织 + 它们如何通信
“云”联想
云计算、云服务、云原生和边缘计算的区分及联系
一、一句话核心区别
术语 | 本质 | 类比 | 关键特点 |
---|---|---|---|
云计算 | 远程租用计算资源 | 像“水电厂”集中供水供电 | 按需付费、集中化、超大规模 |
云服务 | 云计算提供的具体产品 | 水电厂卖的“水、电、燃气” | IaaS/PaaS/SaaS三层服务模型 |
云原生 | 为云设计的开发方式 | 专门为水电厂设计的“节能家电” | 容器化、微服务、DevOps |
边缘计算 | 把计算推到数据源头 | 家里装“太阳能板+储能电池” | 低延迟、省带宽、本地化处理 |
二、深度对比记忆法
1. 云计算 vs 云服务(父子关系)
- 云计算是“技术理念”(像“互联网”这个抽象概念)。
- 云服务是“具体产品”(像“微信、淘宝”这些具体应用)。
- 例子:
- 云计算平台:AWS、阿里云(提供资源的“水电厂”)。
- 云服务:AWS EC2(IaaS)、阿里云RDS(PaaS)、钉钉(SaaS)。
- 例子:
2. 云原生 vs 云计算(方法 vs 环境)
- 云计算是“场地”(健身房)。
- 云原生是“健身方法”(专门为健身房设计的训练计划)。
- 云原生三件套:
- 容器化(把器材打包成标准化哑铃) → Docker
- 微服务(拆分成专项训练课) → Kubernetes
- DevOps(私教+营养师协同) → CI/CD流水线
- 云原生三件套:
3. 边缘计算 vs 云计算(互补关系)
维度 | 云计算 | 边缘计算 |
---|---|---|
位置 | 集中式数据中心(远程) | 靠近数据源头(本地) |
适合场景 | 大数据分析、长期存储 | 实时响应(如自动驾驶) |
例子 | 淘宝商品推荐算法 | 工厂摄像头实时质检 |
记忆口诀:
“云是中央大脑,边缘是末梢神经”
——云计算做全局决策,边缘计算做快速反射。
三、常见混淆点破解
Q1:云原生和云计算必须一起用吗?
- 不一定!
- 你可以在本地机房用云原生技术(如K8s管理私有服务器)。
- 但云原生最适合云计算环境(就像节能家电在水电厂效率最高)。
Q2:边缘计算能脱离云吗?
- 不能完全脱离!
- 边缘设备通常与云协同(如智能家居本地处理语音,但数据同步到云端分析)。
- 极端场景可独立运行(如战场无人机离线识别目标)。
四、一张图总结
[用户设备] ←边缘计算→ [边缘节点(工厂/车载电脑)]
↓
[云服务(IaaS/PaaS/SaaS)]
↓
[云计算数据中心(AWS/阿里云)]
↓
[云原生技术(容器/微服务)支撑整个体系]
五、记忆技巧
- 联想生活:
- 云计算≈“外卖”(远程做好送上门),边缘计算≈“自热火锅”(就地解决)。
- 缩写梗:
- 云原生CNCF(Cloud Native Computing Foundation)→ “菜鸟厨房”(用标准化厨具做微服务菜)。
- 极端例子:
- 纯云计算:所有手机APP数据都传回云端处理 → 卡顿、费流量。
- 纯边缘计算:每台手机自己训练AI模型 → 耗电、算力不足。
掌握这个框架后,再遇到这些词时,先问自己:
- 它在讨论资源位置(云/边缘)还是使用方法(云原生)?
- 它是抽象概念(云计算)还是具体产品(云服务)?
保证再也不混淆!
云服务的三层服务模型联想
IaaS、PaaS、SaaS 是云服务的三大核心模式,它们像**“租房”的不同级别**,从毛坯房到精装房再到酒店式公寓,服务逐级封装,用户需要管理的部分越来越少。以下是它们的本质解析和快速记忆法:
一、用“租房”类比秒懂三层服务
云服务类型 | 类比 | 你获得的东西 | 你需要负责的事 | 典型产品 |
---|---|---|---|---|
IaaS | 毛坯房 | 地基、墙面、水电管线(虚拟机、网络、存储) | 装修、买家具(装系统、部署应用) | AWS EC2、阿里云ECS |
PaaS | 精装房+基础家具 | 墙面刷好、厨房卫生间完工(数据库、中间件) | 布置软装(写业务代码) | Heroku、阿里云RDS |
SaaS | 酒店式公寓 | 拎包入住(完整应用,如邮箱、OA系统) | 直接使用(无需管理底层) | 钉钉、Salesforce、Gmail |
二、三层服务的核心特点对比
1. IaaS(Infrastructure as a Service)
- 特点:
- 提供最底层资源:虚拟机、存储、网络。
- 用户需自行安装OS、中间件、应用(就像毛坯房自己装修)。
- 适用场景:
- 需要完全控制环境的开发/运维团队。
- 突发流量需快速扩容(如电商大促临时增加服务器)。
2. PaaS(Platform as a Service)
- 特点:
- 提供开发平台:数据库、消息队列、运行环境(如Java/Python环境)。
- 用户只需关注业务代码(省去环境配置烦恼)。
- 适用场景:
- 开发者想快速构建应用(如创业公司MVP开发)。
- 避免维护数据库等中间件(如直接用云数据库RDS)。
3. SaaS(Software as a Service)
- 特点:
- 提供开箱即用的软件,通过浏览器或APP访问。
- 用户零运维(连代码都不用写)。
- 适用场景:
- 企业通用需求(如CRM、HR系统)。
- 个人用户工具(如在线文档、会议软件)。
三、一张图理解层级关系
[用户] ←SaaS(直接用软件)
↓
[开发者] ←PaaS(用平台写代码)
↓
[运维] ←IaaS(管理虚拟机/网络)
↓
[物理服务器](云厂商维护)
数据流:
- 越往上,用户责任越少,灵活性越低。
- 越往下,控制权越大,复杂度越高。
四、实际案例加深理解
-
部署一个网站:
- IaaS:租用云服务器(EC2)→ 自己安装Nginx、MySQL → 部署代码。
- PaaS:直接用云平台(Heroku)→ 推送代码自动部署,数据库已内置。
- SaaS:用Wix拖拽建站,连代码都不用写。
-
开发一个APP后端:
- IaaS:在AWS EC2上手动搭建Kubernetes集群。
- PaaS:直接用阿里云函数计算(FC),只需上传代码。
五、常见误区破解
Q1:PaaS和SaaS容易混淆?
- 关键区别:
- PaaS提供开发工具(如数据库API),用户仍需写代码。
- SaaS提供完整功能(如钉钉审批流程),用户只能配置无法改逻辑。
Q2:Serverless属于哪一层?
- 本质是PaaS+:
- 像AWS Lambda将封装做到极致(连服务器数量都无需关心),但仍需用户编写函数代码。
六、记忆口诀
“I管机器,P管平台,S只管用”
——对应IaaS、PaaS、SaaS的责任边界。
总结
- 选IaaS:适合需要完全控制底层的高自由度场景(如定制化AI训练)。
- 选PaaS:想专注业务开发,避免运维负担(中小团队首选)。
- 选SaaS:解决通用需求,追求零成本启动(如企业微信打卡)。
下次再混淆时,想想“租房”类比,立刻清晰! 🏠→🛋️→🏨
设计模式联想
设计模式的本质是解决特定场景问题的套路,用**“江湖武功秘籍”来类比,23种设计模式立刻变得生动好记。这里按创建型、结构型、行为型**三大类分类,附口诀+场景梗,辅助记忆。
一、创建型模式(5种)—— “开宗立派之法”
设计模式 | 江湖比喻 | 核心心法 | 典型场景 |
---|---|---|---|
工厂方法 | 兵器铺定制宝剑 | “你要刀?剑?我来造” | Spring Bean工厂 |
抽象工厂 | 唐门暗器全家桶 | “毒镖+迷烟成套卖” | 跨平台UI组件库 |
单例 | 武林盟主唯一宝座 | “天下只能有一个张无忌” | 数据库连接池 |
建造者 | 打造屠龙刀六道工序 | “玄铁+火工+淬水分步走” | Java StringBuilder |
原型 | 乾坤大挪移复制分身 | “复制一个同样的我” | 游戏NPC克隆 |
记忆口诀:
“工厂造单例,建造原型抽象奇”
二、结构型模式(7种)—— “经脉连接之术”
设计模式 | 江湖比喻 | 核心心法 | 典型场景 |
---|---|---|---|
适配器 | 转接头兼容不同兵器 | “让九阴白骨爪能用北冥内力” | 旧系统接口改造 |
桥接 | 剑法+内力自由组合 | “独孤九剑配易筋经” | 多维度扩展(如画笔颜色+形状) |
组合 | 少林罗汉阵 | “一人是武僧,百人是大阵” | 树形菜单结构 |
装饰器 | 给宝剑镶宝石 | “原剑法+剑气特效” | Java IO流嵌套 |
外观 | 江湖百事通 | “打听消息只需找他一站式” | 系统封装简化接口 |
享元 | 共享门派制服 | “所有弟子穿同款衣服省布料” | 线程池、字符串池 |
代理 | 替身使者 | “张无忌的乾坤袋(实际是赵敏)” | AOP动态代理 |
记忆口诀:
“适配桥接组合巧,装饰外观享元少,关键时刻用代理”
三、行为型模式(11种)—— “御敌制胜之道”
设计模式 | 江湖比喻 | 核心心法 | 典型场景 |
---|---|---|---|
责任链 | 丐帮消息层层传递 | “从一袋弟子传到帮主” | 审批流程、过滤器链 |
命令 | 圣火令调动明教弟子 | “持令者不问缘由,只管执行” | 事务回滚、宏命令 |
解释器 | 侠客岛太玄经 | “特定语法规则翻译” | 正则表达式、SQL解析 |
迭代器 | 藏经阁秘籍目录 | “按顺序翻阅,不关心存放方式” | Java集合遍历 |
中介者 | 武林大会主持人 | “各派争吵?找鲁仲连调解” | 聊天室服务器 |
备忘录 | 乾坤大挪移存档 | “打不过?读档重来” | 游戏存档、事务快照 |
观察者 | 烽火台报警 | “狼烟起,各城门自动备战” | 事件监听、消息队列 |
状态 | 段誉的六脉神剑时灵时不灵 | “状态变,行为自动变” | 订单状态流转 |
策略 | 对阵时切换武功 | “遇强用降龙,遇弱用打狗” | 支付方式选择 |
模板方法 | 少林罗汉拳固定套路 | “起手式→核心招式→收势” | JdbcTemplate |
访问者 | 大夫给各门派弟子体检 | “不同门派用不同诊断法” | 编译器AST遍历 |
记忆口诀:
“责任命令解释器,迭代中介备忘录,观察状态策略奇,模板访问最神秘”
四、超强记忆技巧
1. 门派场景联想
- 创建型:想象打造兵器/培养弟子的过程(工厂、建造者)。
- 结构型:想象经脉连接/装备组合(适配器、桥接)。
- 行为型:想象江湖争斗中的策略(观察者、策略)。
2. 极端例子法
- 没有单例模式:武林盟主天天换人 → 系统资源混乱。
- 没有观察者:烽火台点火无人响应 → 事件无法通知。
3. 对比记忆易混模式
- 装饰器 vs 代理:
- 装饰器:给宝剑加宝石(增强功能)。
- 代理:乾坤袋假装是张无忌(控制访问)。
- 策略 vs 状态:
- 策略:主动切换武功(人为选择)。
- 状态:自动触发六脉神剑失灵(内部条件驱动)。
五、真题速答示范
问题:电商系统需要支持多种促销规则(满减、折扣、积分),如何设计?
答案:
- 用策略模式(不同促销算法封装成策略类,如
DiscountStrategy
、FullReductionStrategy
)。 - 口诀联想:“遇强用降龙,遇弱用打狗”——根据场景切换策略。
终极口诀(23种全概括)
“工厂单例造原型,适配桥接组合灵,装饰外观享元轻,代理责任命令明,解释迭代中介行,备忘观察状态精,策略模板访问赢”
按这个逻辑多联想几次,设计模式会像武侠招式一样深深刻在脑子里!下次写代码时,想想这是“少林派”还是“唐门”的套路,自然信手拈来 🎯
持续更新中…