敏捷软件开发 - 原则、模式与实践 —— 设计模式(七)COMPOSITE模式

UML核心图表解析与软件建模实战技巧 统一建模语言(UML)是软件工程中用于系统设计的标准化图形语言,通过类图、时序图等14种图表类型描述系统结构和行为。作为面向对象设计的可视化工具,UML能有效解决开发团队间的沟通障碍,特别适用于复杂业务系统的建模。类图展现对象间静态关系,时序图描述动态交互流程,这两种核心图表覆盖了80%的日常建模场景。在实际工程中,结合PlantUML等工具可以实现文本化UML建模,完美适配敏捷开发流程。从银行系统到电商平台,UML在需求分析、架构设计等环节都发挥着关键作用,是提升软件质量的重要工程实践。 阅读详情

本文为敏捷软件开发 - 原则、模式与实践系列的一部分。

本文对应原书第23章

COMPOSITE模式是一个非常简单但具有深刻内涵的模式。

图1

上图中展示了COMPOSITE模式的基本结构。图中是一个形状类层次结构。基类Shape有两个派生类:Circle和Square。第3个派生类时一个组合体。CompositeShape持有一个含有多个Shape实例的列表。当调用CompositeShape的draw()方法时,它就把这个方法委托给列表中的每一个Shape实例。

因此,对系统来说。一个CompositeShape实例就像是一个单一的Shape。可以把它传递给任何使用Shape的函数或者对象,并且它表现得就像是一个Shape。不过,实际上它只是一组Shape实例的代理。

完整内容请查看敏捷软件开发 - 原则、模式与实践系列

cadence——MOS晶体管I-V特性曲线仿真 MOS晶体管I-V特性曲线仿真 目标:使用cadence绘制晶体管的I-V特性曲线(dc仿真) 流程: 新建原理图,将MOS管的栅极电压设为变量Vg,漏极电压设为变量Vd 打开ADEL,点击Variables——Copy From Cellview添加变量;并选择dc仿真,对Vd进行扫描 以Vg作为参变量进行仿真,点击Tools——Parametric Analysis进行设置 选择漏极电流作为输出,进行仿真即可得到I-V特性曲线 ... 阅读详情

相关推荐

LVI-SAM适配KITTI数据集避坑指南:IMU频率与数据同步问题解析

本文深入解析了将LVI-SAM框架适配KITTI数据集时,在IMU频率与多传感器数据同步方面遇到的核心挑战与解决方案。针对KITTI数据集中sync与extract两种数据包的差异,文章提供了从数据选择、参数调优到时间戳诊断与修复的完整避坑指南,帮助开发者实现稳定高效的SLAM系统部署。

7z8x2c4v6b9的博客 248

《敏捷软件开发──原则、模式与实践》阅读笔记

《敏捷软件开发──原则、模式与实践》阅读笔记 《敏捷软件开发──原则、模式与实践》阅读笔记 Table of Contents 1. 敏捷开发 1.1. 敏捷联盟宣言 1.2. 敏捷开发的原则 2. 极限编程 3. 设计原则 3.1. 单一职责原则(SRP) 3.2. 开放——封闭原则(OCR) 3.2.1. 遵循开放──封闭原则设...

weixin_30855761的博客 666

Anomalib实战指南:从零开始构建自定义异常检测数据集

本文提供了一份详细的Anomalib实战指南,指导用户从零开始构建自定义异常检测数据集。文章深入解析了数据准备的核心步骤、目录结构规范,并对比了PatchCore与FastFlow等关键模型的适用场景。通过清晰的代码示例,手把手演示了环境配置、模型训练与推理评估的全流程,旨在帮助开发者快速掌握这一工业视觉异常检测利器,有效解决实际生产中的缺陷识别难题。

weixin_29054245的博客 643

Scrum敏捷开发模式介绍与实践

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言开发模式1. 瀑布流开发模式2. 迭代开发模式3. 螺旋开发模式4. 敏捷开发模式一、敏捷开发模式二、敏捷模式1. Scrum2. Kanban3. XP4. Lean Startup三、Scrum 敏捷开发模式1. 框架图2. 角色Scrum Master,SMProduct Owners, POSoftware Developers, SD3. 术语Product BacklogSprintSprint PlanningS.

qq_16608213的博客 4630

Hive数据仓库分层架构实战:4层黄金模型×6大业务场景×万亿级数据优化方案

根据《2023数据中台成熟度报告》,‌78%的ETL任务性能瓶颈‌源于分层设计不合理。本文基于某头部电商平台PB级数据仓库建设经验,结合金融风控、用户画像、实时大屏等核心场景,深度解析‌ODS→DWD→DWS→ADS‌四层架构设计原则,揭秘‌万亿级数据治理方案‌与‌维度建模20大避坑策略‌。

优快云博客专家,领域包括但不限于:AI、大数据、Python、架构师,有合作、课程、问题、疑惑请私信博主 1484

MIPI D-PHYv2.5笔记(11) -- 高速时钟传输(High-Speed Clock Transmission)

在High-Speed模式中,Clock Lane提供了一个低摆幅(low-swing)、差分DDR时钟信号,此信号从Master到Slave,用于为高速数据传输提供时钟信号。时钟信号关于Forward Direction中的Data Lane上的位切换序列(toggling bit sequence)有正交相位,并且在一次burst的第一个被传输的bit的中心点有一个上升沿。

vivo01的专栏 3021

论设计模式与敏捷开发

又是一年的五一了,北京的天气今天也热了起来,空气中飘着柳絮但却感觉不到春天的舒适,反而有一点夏天的感觉.就想起来很都朋友说的一句话:“北京是没有春天的!”   这一阵子在潜心研究设计模式以及敏捷软件开发,觉得这些东西用处很大,单却被很多人给用烂了.就象曾经有为大师所说的那样"设计模式不是可以到处喷洒的香水,如果过度的使用它就会使系统具有不必要的复杂性".所以就觉得我们在使用设计模式的时候方式上

sunnyShineBoy的专栏 1602

安信可TB蓝牙模组系列 实战Ble Mesh智能照明系统搭建

本文详细介绍了如何使用安信可TB蓝牙模组系列搭建Ble Mesh智能照明系统。从硬件准备、固件烧录到手机APP组网全流程,提供了实战步骤和优化建议,特别适合智能家居开发者入门。Ble Mesh的自组网能力解决了蓝牙传输距离限制,实现全屋灯光智能控制。

weixin_30856725的博客 352

敏捷软件开发 - 原则、模式与实践

起源 《敏捷软件开发 - 原则、模式与实践》是我接触到的第一本系统介绍软件设计的书籍,深刻影响了个人的软件开发习惯。它并不难懂,我一直推荐给身边的各个层次的程序员学习。 可对于一本接近500页的图书,很多人还是望而却步。一直都想写个关于这本书的速读,使更多的人了解它。但是最近又重新学习了一遍发现它之所以有价值不仅仅在于书中总结的原则和模式,更在于它提供的如何运用这些原则、模式的实践例子。忽略了大量...

feifeilb的博客 2377

Demo2Reward:用人类演示动态优化VLM奖励模型提示

多模态大模型(VLM)的奖励建模正面临核心瓶颈——静态提示导致语义鸿沟与泛化失效。其本质是将人类判断标准固化为不可更新的文本模板,使奖励信号脱离真实任务意图。Demo2Reward提出范式级改进:以结构化人类演示为元信号,驱动提示权重连续优化,实现从‘结果打分’到‘过程理解’的跃迁。该方法不修改VLM主干,却显著提升RLHF收敛效率与OOD鲁棒性,在医疗、工业质检等场景验证了跨任务迁移与热修复能力。它重新定义了提示工程的技术价值:不是前端微调,而是奖励系统的认知校准基础设施。

weixin_34302798的博客 408

SAP 替代关系完全替代简介

这里产生了成品物料的计划订单,我们查看计划订单中BOM的变化,如下图可以看到物料的需求仍然落在了优先级为1的这个302300005555这个物料上面,并没有考虑到302300006666的这个库存,和我们理解的MRP的完全替代不一样,按我们的理解需求应该是要落在302300006666这个物料料,但是MRP计算后并没有这样进行分配。最近用户在对长周期物料进行备料的时候又提出替代料的问题,主料库存不足的时候需要考虑替代料的在途库存,经常会忘了SAP标准的替代料逻辑,这次一次性把这个逻辑写清楚。

我小时候很黑的博客 1744

推荐:《敏捷软件开发、原则、模式与实践》电子版

 内容简介 在这本书中,享誉全球的软件开发专家和软件工程大师Robert C.Martin将向您展示如何解决软件开发人员、项目经理及软件项目领导们所面临的最棘手的问题。这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。   ·讲述在预算和实践要求下,软件开发人员和项目经理如何使用敏捷开发完成项目。   ·使用真实案例讲解如何用极限编程来设计、测试、重构和结

Scrum中文网-博客 1318

CANoe:入门介绍

CANoe网络通信分析:CANoe用户可以在台架上或者车辆中分析ECU和整个系统的多总线通信。Trace窗口:用于列出所有总线活动,例如消息或错误帧。对于每条消息,都可以显示单独的信号值Graphics窗口:用于在时间轴上以图形方式在线显示消息和诊断请求中传输的值,例如rpm或温度值Statistics窗口:用于显示有用的网络和节点统计信息,例如节点和帧级别的总线负载、突发计数器/持续时间、帧和错误的计数器/速率、控制器状态Data窗口:用于显示预选数据,例如数字或条形图数据。

jasonj333 9750

敏捷软件开发 - 原则、模式与实践 —— 设计模式(三)FACADE模式和MEDIATOR模式

介绍 这两个模式有着共同的目的。它们都把某种策略施加到另外这一组对象上。FACADE模式从上面施加策略,而MEDIATOR模式则从下面施加策略。FACADE模式的使用是明显且受限的,而MEDIATOR模式的使用则是不明显且不受限的。 FACADE模式 图1 MEDIATOR模式 图2 图2展示了QuickEntryMediator的结构。用一个JList和一个JTextField构造了一个Quic...

feifeilb的博客 314

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

推荐书籍系列(2):敏捷软件开发――原则、模式与实践

又名: Agile Software Development: Principles, Patterns, and Practices 译者: 邓辉作者: (美)Robert C·Martin 邓辉 孟岩 审 isbn: 7302071977页数: 500出版社: 清华大学出版社出版年: 2003-9-1 在这本书中,享誉全球的软件开发专家和软件工程大师Robert C.Martin将向您...

weixin_30267785的博客 145

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

《敏捷软件开发》读书笔记(3)

《敏捷软件开发》读书笔记(3) 书中设计模式的汇总 命令类模式,分离执行和定义 CMD模式 其实是事件-事务绑定的模型: 可以用事件驱动,只要收到事件,执行绑定到事件对应的CMD对象.do方法就行,对于真正执行的事情无感知。解除了系统的逻辑互联关系和实际连接关系的设备之间的耦合。 事务型操作,把验证和执行分离,由执行框架完成验证和执行操作。解除了获取数据、验证数据、执行数据操作这种空间耦合,同时...

drumdream的博客 303

侯捷-C++设计模式 笔记(已更新设计模式3个)

每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。

双河子思的博客 540

C#设计模式迷你手册

一、 设计模式的隐喻      武功套路是习武的门径。新手要一招一式地练习套路,烂熟于心之后,熟能生巧,在实战之中即可见招拆招、运用自如——此时习武之人已从“新手”成长为“好手”。“高手”则没有套路,实战之中只有自然反应,然而一招一式浑然天成、恰到好处,似有似无、无中生有。“高手”之上还有“高高手”,他们达到的境界非我等凭借金氏武侠小说可以揣测。       设计模式之于设计,好比套路之于

Ghost 1087

9. Composite组合(结构型模式)

9.Composite组合(结构型模式) 李建忠海祝成科技高级培训讲师 对象容器的问题 在面向对象系统中,我们常会遇到一类具有“容器”特征的对象——即它们在充当对象的同时,又是其他对象的容器。publicclassSingleBox:IBox{publicvoidprocess(){……}}publicclassContainerBox:IBox{pub...

weixin_30886233的博客 86

设计模式基础知识

下一步在设计模式方面的计划:巩固并运用设计模式,巩固:把《大话设计模式》,《.Net设计模式》,《设计模式——可复用的面向对象基础》,《敏捷软件开发:原则、模式与实践》这些书再结合起来系统的看一看,当然还会去买一些我手头上没有的关于设计模式的书;运用:部门前几天也提倡用C#来改版VB程序,我想这是一个很好的平台,正好有机会把理论的东西在实际中应用,理论加实际——唯一的学习方法。。。 下面对各

leileicaocao的专栏 437

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

BDD与Cucumber实践指南:用Gherkin语法编写可执行需求,驱动团队高效协作

在软件工程领域,自动化测试是保障软件质量、提升交付效率的关键实践。其核心原理在于通过脚本模拟用户操作,对系统行为进行验证,从而及早发现缺陷,降低修复成本。这一技术价值在于将重复的测试工作自动化,使团队能持续、快速地对软件变更进行反馈,是敏捷开发和DevOps实践中不可或缺的一环。其应用场景广泛,从单元测试、集成测试到端到端的用户验收测试,贯穿整个开发生命周期。特别是在处理复杂业务逻辑和团队协作时,传统的测试脚本往往难以理解和维护。行为驱动开发(BDD)及其工具Cucumber应运而生,它通过定义一种名为Gh

weixin_34200628的博客 371

大二2个月通过中级软件设计师学习路线

软件设计师中级备考经验分享 去年我通过两三个月的努力成功通过了软件设计师中级考试。作为基础一般的考生,我想分享一下真实备考经历: 学习周期:建议至少预留2个月时间,网上所谓的"速成"并不靠谱 核心资料:B站zst_2001(炸薯条)的课程+真题刷题软件 备考策略: 上午选择题:反复记忆固定知识点 下午大题:理解原理而非死记硬背 算法题:从基础练起,如背包问题、N皇后问题 学习方法: 看视频做笔记→分类整理知识点→反复刷题修正 重点掌握计算机系统、软件工程、数据库、面向对象等核心章节 设计

2604_95920027的博客 1757

软件设计师真题精讲:从RISC/CISC到Python通信,打通知识脉络

计算机体系结构中的RISC与CISC是理解现代CPU架构的基础,RISC指令精简、追求能效,CISC指令复杂、功能强大,这一原理直接关联到ARM与x86在移动和服务器领域的竞争。在软件工程实践中,理解不同编程语言的特性和交互方式至关重要,例如Python与C的通信机制,涉及C扩展、子进程调用等多种技术,用于平衡开发效率与执行性能。这些核心概念与原理,共同支撑着软件设计师在系统分析、数据库设计、算法实现等场景中解决复杂问题的能力。本文以软件设计师真题为载体,深入剖析RISC/CISC对比、Python与C通信

weixin_34068198的博客 451
上一篇: 敏捷软件开发 - 原则、模式与实践 —— 设计模式(六)FACTORY模式
下一篇: 敏捷软件开发 - 原则、模式与实践 —— 设计模式(八)OBSERVER模式
feifeilb
博客等级 码龄22年 22粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值