java设计模式
文章平均质量分 84
风清扬2017
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
装饰器模式:像“咖啡加料”一样,动态给对象“穿装备”!
/ 抽象组件:所有咖啡的公共接口// 获取描述(如"浓缩咖啡 + 牛奶")// 计算价格// 抽象装饰器:所有配料的公共父类// 持有被装饰的咖啡对象// 默认实现:直接调用被装饰对象的方法@Override@Override装饰器模式的核心是“本体不动,装饰叠穿”,就像咖啡加料一样,每层装饰都只做一件事,但组合起来能创造无限可能!下次遇到“需要动态扩展功能”的需求,别急着改原有代码,试试装饰器模式,让代码像调制咖啡一样灵活有趣~原创 2025-06-23 09:54:41 · 837 阅读 · 0 评论 -
组合模式:像“公司组织架构”一样,轻松管理“树形关系”!
/ 抽象组件:所有部门/员工的公共接口// 统一方法:展示部门信息(叶子节点和容器节点都要实现)// 可选方法:添加子部门(容器节点实现,叶子节点抛异常)throw new UnsupportedOperationException("叶子节点不能添加子部门!");组合模式的核心是“把树形结构变成代码中的父子关系”,就像公司里CEO管理技术部和财务部,技术部又管理后端组和前端组。通过统一接口,客户端无需关心具体是部门还是员工,代码简洁又灵活!原创 2025-06-19 11:55:02 · 957 阅读 · 0 评论 -
代理模式:像“明星经纪人”一样,帮你“搞定杂事”!
不管是小码还是其他明星,演出前都需要“准备舞台”,演出后需要“谢幕”。// 抽象主题接口:所有明星的“演出流程模板”// 准备舞台(比如调试设备、试音)// 核心动作:唱歌表演代理模式的核心是“本体做主角,代理跑龙套”。就像明星经纪人帮小码处理杂事,让小码专注唱歌——代理模式让你的代码更专注、更灵活!下次遇到“需要给现有功能加‘前戏’或‘后戏’”的需求,记得用代理模式,轻松搞定~原创 2025-06-19 11:46:33 · 758 阅读 · 0 评论 -
Java工厂模式:像“点快餐”一样,轻松“造对象”!
不管套餐A还是套餐B,都有一些共同操作(比如“展示内容”“计算价格”)。// 产品接口:所有套餐的“统一动作模板”(比如展示内容、计算价格)// 展示套餐内容(比如“汉堡+薯条”)// 计算套餐价格(比如30元)快餐店老板(工厂)需要根据客户的订单(参数),生产对应的套餐。原创 2025-06-19 10:54:18 · 837 阅读 · 0 评论 -
模板模式:像“做奶茶”一样,步骤固定但细节可变!
父类()负责定义“固定流程”和“变化步骤的接口”。:模板方法,定义整体流程(固定步骤 + 调用变化步骤)。:具体方法(固定步骤,父类直接实现)。stir():抽象方法(变化步骤,由子类实现)。// 抽象模板类:定义饮品制作的通用流程(模板方法 + 变化步骤接口)// 模板方法:定义整体流程(固定步骤 + 调用变化步骤)// 这个方法是“骨架”,子类不需要重写,直接调用即可// 固定步骤1:洗杯子// 固定步骤2:烧热水// 变化步骤1:倒基础液体(咖啡/茶)原创 2025-06-19 10:48:12 · 763 阅读 · 0 评论 -
观察者模式:像“追剧更新提醒”一样,消息自动“送上门”!
不管你是手机APP、邮箱还是短信提醒,收到更新时都要做一件事:显示提醒。// 观察者接口(所有订阅者的“统一动作模板”)// 当被观察者(代码TV)更新时,观察者要执行的动作(比如显示提醒)注册观察者(让你订阅)。移除观察者(取消订阅)。通知所有观察者(发送提醒)。所以定义被观察者接口:// 被观察者接口(主题的“管理模板”)// 注册观察者(订阅)// 移除观察者(取消订阅)// 通知所有观察者(发送提醒)观察者模式的核心是“你变,我就变;你通知,我就动。原创 2025-06-19 10:44:32 · 1069 阅读 · 0 评论 -
策略模式:让“选择困难症”变得超简单!
不管哪种优惠,核心都是“根据订单金额算最终价格”。// 优惠策略接口(所有具体优惠的“模板”)// 计算最终价格的方法(参数是订单原价)我们需要一个“工具类”,帮我们选择当前适用的策略,并调用它的算法。这个类叫// 优惠策略上下文(负责选策略、算价格)// 当前使用的策略(默认是无门槛)// 动态切换策略(比如根据订单金额自动选最优)// 计算最终价格(调用当前策略的算法)策略模式的核心是“把变化的部分(算法)封装起来,不变的部分(调用逻辑)稳定下来”。原创 2025-06-18 10:07:08 · 660 阅读 · 0 评论 -
责任链模式:像流水线一样“接力”处理问题
请假单需要包含天数和原因,所以先建个// 请假请求类(装请求的“内容”)// 申请人// 请假天数// 原因// getter方法(后面处理者需要获取这些信息)所有处理者(组长、经理、总监)都要遵循同样的规则:要么处理请求,要么传给下一个处理者。所以先建个抽象类Approver// 抽象处理者(所有具体处理者的“模板”)// 下一个处理者(“接力”的人)// 设置下一个处理者(“指定接力的人”)// 处理请求的核心方法(由子类实现)责任链模式的核心是“分工协作,接力处理。原创 2025-06-18 09:56:37 · 731 阅读 · 0 评论
分享