
面向对象
文章平均质量分 66
叫醒你笛莎
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
观察者模式(Observer Pattern)详解
使得当一个对象(被观察者/主题)的状态发生改变时,所有依赖它的对象(观察者)都会自动收到通知并更新。// 状态变化时通知观察者。// 注册到被观察者。:被观察者不需要知道观察者的具体实现,只需调用统一的更新方法。:维护一个观察者列表,提供注册、删除和通知观察者的方法。:定义一个更新接口,用于接收被观察者的状态变化通知。的系统(如 UI 框架、实时数据监控)。// 修改状态,触发通知。(如股票价格变化通知投资者)。原创 2025-05-11 18:58:34 · 583 阅读 · 0 评论 -
访问者模式(Visitor Pattern) vs. 桥接模式(Bridge Pattern)的区别
原创 2025-05-11 18:55:40 · 218 阅读 · 0 评论 -
中介模式(Mediator Pattern) vs. 代理模式(Proxy Pattern)的区别
/ 代理持有真实对象。= sender) { // 不给自己发。// Bob 收到消息。// 初始化时加载图片(耗资源)image.display();// 第一次调用时才加载图片。,代理决定是否/如何调用真实对象。// 具体中介者(聊天室)// 真实主题(真实图片)// 代理(控制访问)// 同事类(用户)原创 2025-05-11 18:44:28 · 1098 阅读 · 0 评论 -
解释器模式
来构建抽象语法树(AST, Abstract Syntax Tree)。通过递归调用 AST 的节点(即解释器)来执行解释操作。编程语言编译器/解释器(如解释简单的脚本语言)(词法分析、语法分析)或使用工具(如。如果需要处理更复杂的语言,建议结合。,通过组合模式管理表达式层次结构。(解析 WHERE 子句)。是一种行为型设计模式,它。假设我们要解释一个简单的。,但不适合复杂语言解析。(如业务规则判断)。原创 2025-05-11 18:38:18 · 530 阅读 · 0 评论 -
UML包图
原创 2025-05-11 18:08:40 · 159 阅读 · 0 评论 -
实体类、控制类,接口类
原创 2025-05-11 16:39:06 · 102 阅读 · 0 评论 -
对象的状态
原创 2025-05-11 16:32:31 · 350 阅读 · 0 评论 -
状态图概念笔记
具体: UML--状态图的基本概念和作用_状态图的作用-CSDN博客。原创 2025-05-11 15:30:00 · 203 阅读 · 0 评论 -
面向对象类的重新建立
原创 2025-05-11 10:08:07 · 105 阅读 · 0 评论 -
面向对象编程(OOP)中的继承类型详解
一个子类只能继承。原创 2025-05-09 17:56:54 · 875 阅读 · 0 评论 -
方法覆盖(Override)与方法重载(Overload)详解
子类重新定义父类中已存在的同名方法,以改变或扩展其行为。核心目的:实现运行时多态(动态绑定)。关键规则:方法名、参数列表、返回类型必须与父类方法完全相同。访问权限不能比父类方法更严格(如父类为,子类不能为)。不能覆盖、或方法。java复制下载class Animal { public void makeSound() { System.out.println("Animal sound"); }}class Cat extends Animal {原创 2025-05-09 17:51:21 · 648 阅读 · 0 评论 -
面向对象测试(Object-Oriented Testing, OOT)详解
面向对象测试是针对采用面向对象技术开发的软件系统进行的系统化验证过程。:验证类中单个方法的正确性(如输入/输出、异常处理)。:端到端测试(如Selenium、Cucumber)。:验证对象状态转换(如从“未激活”到“已激活”)。:检查是否符合接口约定(如Liskov替换原则)。:测试类的整体行为,包括方法间交互和状态变化。:验证类之间的协作(如继承、组合、接口实现)。:单元测试(如JUnit、pytest)。:确保系统满足用户需求(UAT)。:检查类内方法调用(如。:测试一组协作类(如。原创 2025-05-09 17:40:14 · 389 阅读 · 0 评论 -
UML关系简要
扩展:侧重于用例间特定功能拓展情况,不适用于参与者之间关系描述。- 关联关系:能描述用例之间联系,也能体现参与者之间相互联系。- 泛化:主要用于用例层面关系描述,不适用于参与者之间。- 包含:针对用例之间特定功能关系,不用于参与者之间。原创 2025-04-16 21:18:39 · 115 阅读 · 0 评论 -
责任链模式简要说明
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。责任链模式是指使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,责任链模式属于行为型对象。原创 2025-04-16 21:12:15 · 218 阅读 · 0 评论 -
策略模式和状态模式区别简单说明
在结构上非常相似,都是通过封装不同的行为(策略或状态)并动态切换它们,但它们的。当需要在运行时选择不同的算法或行为(如排序算法、支付方式、折扣策略等)。,并且状态转换逻辑复杂时(如订单状态机、游戏角色状态)。(对象的状态决定行为,状态可自动切换)。如果对象的行为随状态变化而变化,用。// 上下文(Context)(如订单状态、游戏角色状态)。,状态的改变会影响对象的行为。// 上下文(Context)(客户端选择不同的算法)。原创 2025-04-16 21:00:38 · 746 阅读 · 0 评论 -
中介者模式简要说明
中介者模式用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。1. 一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。2. 一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象。3. 想定制一个分布在多个类中的行为,而又不想生成太多的子类。原创 2025-04-16 15:18:57 · 82 阅读 · 0 评论 -
适配器模式和中介模式在以下方面存在区别
定义与目的。原创 2025-04-16 20:54:21 · 285 阅读 · 0 评论 -
设计模式分类全景解析
设计模式根据其核心目的被分为三大类,构成软件设计的"黄金三角":核心:让子类决定实例化哪个类场景:日志记录器、支付网关等需要扩展的创建场景示例:java复制interface Payment { void pay(); }class Alipay implements Payment { /*...*/ }class WechatPay implements Payment { /*...*/ }abstract class PaymentFactory { abstract Paymen原创 2025-04-16 20:30:03 · 873 阅读 · 0 评论 -
生成器(构建器)模式简要说明
**Builder**:抽象建造者,为创建Product对象各部件指定抽象接口,把产品生产过程分解为不同步骤,让具体建造者在建造步骤上更具弹性,以造出不同表示的产品。- **Product**:产品角色,是被构建的复杂对象,具体产品建造者创建其内部表示并定义装配过程,包含定义组成组件的类及将组件装配成最终产品的接口。- **ConcreteBuilder**:具体建造者,实现Builder接口,构造和装配产品各部件,定义并明确所创建的表示,提供返回产品的接口。原创 2025-04-16 20:21:59 · 182 阅读 · 0 评论 -
生成器模式 (Builder Pattern) —— “分步造物者“设计模式
java复制// 省略Setter和Getter@Override(gpu!= null?'}';原创 2025-04-16 20:19:03 · 776 阅读 · 0 评论 -
职责链模式 (Chain of Responsibility Pattern) —— “接力处理“设计模式
java复制// 审批人接口// 具体处理者:主管System.out.println("主管审批通过:" + expense.getDescription());= null) {// 传递给下一级// 具体处理者:经理System.out.println("经理审批通过:" + expense.getDescription());= null) {// 传递给下一级// 具体处理者:总监// 总监是最高级别,没有下一级。原创 2025-04-16 20:10:05 · 556 阅读 · 0 评论 -
命令模式 (Command Pattern) —— “万能遥控器“设计模式
java复制// 命令接口// 支持撤销// 具体命令:做披萨// 具体命令:做意面。原创 2025-04-16 16:41:43 · 625 阅读 · 0 评论 -
状态模式 (State Pattern) —— “智能变色龙“设计模式
java复制// 交通灯状态接口// 红灯状态System.out.println("红灯亮 - 车辆禁止通行");// 自动切换到绿灯// 绿灯状态System.out.println("绿灯亮 - 车辆可以通行");// 自动切换到黄灯// 黄灯状态System.out.println("黄灯亮 - 车辆减速准备停止");// 自动切换回红灯。原创 2025-04-16 16:23:06 · 637 阅读 · 0 评论 -
访问者模式 (Visitor Pattern) —— “万能导游“设计模式
就像旅行团参观城市,不同游客(访问者)对同一景点有不同的行为(拍照、写游记、购物等),而景点本身不需要改变。原创 2025-04-16 16:11:08 · 627 阅读 · 0 评论 -
备忘录模式 (Memento Pattern) —— “时光机“ 设计模式
备忘录模式就像。原创 2025-04-16 15:38:50 · 790 阅读 · 0 评论 -
享元模式(Flyweight Pattern)详解
内在状态(共享部分) → 存储在享元对象内部(如。原创 2025-04-15 22:39:22 · 795 阅读 · 0 评论 -
形象解释:ConcreteFlyweight(具体享元)和 FlyweightFactory(享元工厂)
(复用模板),仅更新外在状态(如“位置:朝阳区,用户:李四”)。:单车的当前位置、骑行用户、是否损坏(每辆车独立不同)。(如“位置:海淀区,用户:张三”)与模板组合,完成租车。检查仓库是否已有某款单车的模板(比如“哈啰-A”)。:单车的品牌、型号、颜色(所有同款单车都一样)。不关心单车在哪里、谁在骑(外在状态由外部管理)。(如单车模板),相当于“可复用的最小单元”。工厂是仓库管理员,确保同款单车模板只存一份。原创 2025-04-15 22:38:46 · 913 阅读 · 0 评论 -
UML 依赖关系(Dependency)的指向规则与含义
表示。原创 2025-04-15 22:18:03 · 672 阅读 · 0 评论 -
为什么在系统需要独立于产品创建、构成、表示时使用抽象工厂模式?
创建型设计模式。原创 2025-04-15 21:14:42 · 713 阅读 · 0 评论 -
构件(Component)的定义
简单来说构件是软件的“积木块”,比如一个.dll文件、一个微服务、一个 React 组件。它强调独立性和可复用性,可以在不同系统中重复使用。1. 构件的核心特点特点说明模块化构件是独立的代码单元,可以单独开发、测试、部署。封装性内部实现被隐藏,只暴露接口(如 API、函数)。可替换性只要接口不变,可以替换构件的实现(例如升级版本)。复用性同一构件可以在多个系统中使用(如支付模块、日志组件)。2. 构件的表示方式(UML)在 UML 中,构件用带接口的矩形构件名称(如。原创 2025-04-15 20:17:51 · 968 阅读 · 0 评论 -
UML 用例图(Use Case Diagram)的用例(Use Case)如何理解?
用例是。原创 2025-04-15 19:59:59 · 926 阅读 · 0 评论 -
多重度(Multiplicity)详解
类之间关联关系的数量约束。原创 2025-04-12 17:13:13 · 863 阅读 · 0 评论 -
UML 图解总结:13种核心图表及其用途
1. 结构型图表(静态模型)图表类型核心作用适用场景类图(Class Diagram)描述类、接口、协作及其关系(继承、关联、依赖等)。系统架构设计、数据库建模。对象图(Object Diagram)展示某一时刻对象实例及其链接关系(类图的运行时快照)。调试复杂对象交互。组件图(Component Diagram)显示构件(如库、可执行文件)的组织和依赖关系。模块化开发、微服务架构设计。部署图(Deployment Diagram)描述软件在硬件节点(如服务器、设备)上的物理部署。原创 2025-04-12 15:29:34 · 693 阅读 · 0 评论 -
包的共同重用(Package-Level Reuse)
将功能相关的代码组织到同一个包中(如。原创 2025-04-12 14:08:21 · 729 阅读 · 0 评论 -
面向对象软件开发流程总结
1. 面向对象分析(OOA, Object-Oriented Analysis)目标:识别问题域中的对象和它们的交互。关键任务认证对象(名词):从需求中提取关键实体(如“用户”“订单”)。组织对象(抽象成类):将对象归类(如“用户”抽象为User类)。对象间的相互作用:定义对象如何协作(如“用户提交订单”)。基于对象的操作:明确对象的行为(如“订单”有方法)。2. 面向对象设计(OOD, Object-Oriented Design)目标:将分析结果转化为可实现的软件设计。关键任务识别类及对象。原创 2025-04-12 13:07:50 · 470 阅读 · 0 评论