5 面向对象建模 类设计

软件工程导论核心建模:5种UML图解析面向对象分析与设计 本文深入解析软件工程中的5种核心UML图,包括用例图、类图、时序图、状态图和活动图,帮助开发者掌握面向对象分析与设计的关键技术。通过实战案例和工具推荐,提升团队在复杂系统建模中的沟通效率与设计质量,特别适合软工导论学习者和结构化程序设计实践者。 阅读详情

系统设计之后,我们需要对我们的类模型进行细化,具体过程如下

 

1. 实现用例

根据用例的场景,我们为类添加一些操作,使我们的用例能够通过类运行起来

 

2. 设计算法

一般来说,20%的操作消耗80%的执行时间,对于可能存在性能问题的操作,我们可以给出一个初步的算法伪代码(例如,每次查找key为“abc”的对象,我们需要都遍历10000个对象,每个对象是有序排序的,这时候我们可以使用折中算法)

在一些复杂的算法中,我们需要为类添加一些行为,让算法更容易理解(如下面的伪代码,我们在word中添加一个“包含”方法)

如下是一个查找字符的算法伪代码

for line in doc

for word in line

If word.包含(“需要查找的字符”)

Return word

End if

End for

End for

 

3. 向下递归设计操作

如下一个站点登录用例:

用户访问登录页面

系统返回登录页面

用户输入用户名密码

系统验证用户名密码正确

系统跳转至后台主页

在这段用例中,我们可以在AccountController中添加“返回登录页面”方法,“验证用户名密码”方法,“验证用户名密码”方法会调用我们的“用户仓库”类的“获取用户”方法获取我们的“用户”类,然后调用我们“用户”类的“验证密码”方法验证我们密码的正确性

上面的操作中,除了AccountController的“返回登录页面”方法和“验证用户名密码”方法可以从用例中发现外,其余的方法需要我们自己去推导设计

 

4. 为高效访问而增加冗余

有时候我们为了高效访问会增加一些冗余关联,如下

 

5. 应用缓存

对于一些消耗性能的操作,我们可以缓存其结果

 

6. 行为具体化

即将我们的操作提升为类

如果我们的行为有状态,需要在运行时存储或修改或传递,则我们应该将行为提升为类

 

7. 调整继承

某些类的行为具有相似性,这时候我们应该从不同的抽象层次去看待,可能我们就会发现他们具有共同的父类

UML 2.5 类图实战:从电商订单到代码生成,5种关系辨析与PlantUML实现 本文深入解析UML 2.5类图在电商订单系统建模中的应用,详细讲解5种核心关系类型(关联、聚合、组合、泛化、依赖)及其PlantUML实现。通过实战案例演示从建模到代码生成的完整流程,帮助开发者掌握面向对象设计思维,提升软件工程实践能力。 阅读详情

相关推荐

C++实战:德州扑克游戏开发,掌握面向对象与算法设计

面向对象程序设计是软件开发的基石,其核心思想是通过类、继承和多态等机制来模拟现实世界,构建模块化、可复用的代码结构。在C++中,这一理念体现为对数据封装、抽象和代码组织的严格要求,能显著提升程序的可维护性和扩展性。掌握面向对象设计,对于实现复杂系统、管理状态与行为至关重要,尤其在游戏开发、仿真系统和大型应用框架中广泛应用。本文以开发一个命令行德州扑克游戏为例,深入探讨如何运用C++的面向对象特性与标准库容器,构建一个包含牌型判定、游戏状态机和简易AI的完整项目,帮助读者从语法练习转向工程实践,解决实际开发中

weixin_32570803的博客 316

软件工程——面向对象建模方法

1.用例建模 参与者 用例模型 用例描述+活动图 用例描述->提取概念类(类名、属性0->建立领域模型 2.静态建模——领域模型与类图 领域模型(分析类图)->设计类图(类+关系+方法) 领域模型 概念类-名词 类之间的关系 属性 概念类 类名 属性 方法 例:医院病房监护系统 题目描述:为了对危重病人进行实时监护,随时了解病人病情,及时进行处理,建立病房监护系统。病症监视器安置在每个病床,通过网络将病人的病症信号(组合)实时传送到中央监护系统进行分.

二琳爱吃肉的博客 7840

UML 2.5 类图 6 种关系:从 Java 代码到 PlantUML 绘制的 1:1 映射实战

本文详细解析了UML 2.5标准中的6种类图关系,包括关联、聚合、组合、泛化、依赖和实现,并通过Java代码与PlantUML图表的1:1映射实战,帮助开发者掌握从代码到设计的可视化技巧。文章还提供了环境配置、基础概念及高级绘图技巧,适合软件工程师和开发者参考。

weixin_33428613的博客 243

软件工程-面向对象建模分析

面向对象分析 关注技术领域中的实体,并将其建模为对象 面向对象分析技术主要基于分类,泛化,聚合关系在对象集合之间建立结构 对象的行为是执行预定的动作(服务/活动) 对象通过执行动作来完成状态变迁 Peter Code的面向对象方法 "对象"是问题领域中真实存在的实体,有定义清晰的边界 对象中封装有属性和行为 面向对象分析的五个核心概念:对象,属性,结构,服务和主题 一般-特殊结构 整体-部分结构 面向对象的分析方法学 识别对象和类(类是对象的抽象定义) 识别类之间的关系,建立由继承和组合关系组成的

weixin_46570942的博客 2298

UML 2.5 实战:从图书馆管理系统案例掌握 7 种核心图(附类图优化 3 原则)

本文通过图书馆管理系统案例,详细解析UML 2.5中的7种核心图表,包括用例图、类图、时序图等,并分享类图优化的3大原则。帮助开发者掌握软件系统分析与设计的关键技能,提升面向对象设计能力,适用于数据库设计和复杂系统建模。

weixin_30847939的博客 380

西电微机系统课程设计步进电机开环控制系统

** 微机系统与应用课程设计 课题二 步进电机开环控制系统设计** 一、程设计目的 掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。 加深对 A/D 和并行接口芯片的工作方式和编程方法的理解。 搞懂步进电机的工作原理及控制方式,掌握开环控制系统的设计思路和实现方法。 二、课程设计的内容 手动调节电位器旋钮(0V~5V),通过 ADC0809 模拟输入水库水位 0 米~50...

qq_37015775的博客 4038

面向对象的建模方法和工具

面向对象方法把对象作为系统建模的基本单元。面向对象方法认为: (1)对象既可以是具体的物理实体,也可以是抽象的逻辑实体。 (2)每种对象都有各自的属性和行为或操作。 (3)不同的对象之间的相互作用和联系构成了各种不同的系统。面向对象方法的本质是从客观世界固有的事物出发来构造系统,通过识别对象,分析对象间的关系,反映问题域中固有的事物及相互联系。 工具: UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。 (1)用例建模:用用例图和用例来说明描述用户需求。 (2)静态建模:通过类图/对象

xzwDolphin的博客 4399

Grok-1.5+Ollama企业级本地化部署与合规实践指南

本文详细介绍了Grok-1.5+Ollama企业级本地化部署与合规实践指南,重点分析了本地化部署的成本优势和数据主权保障。通过RTX 4090显卡的硬件选型、Ubuntu 22.04系统优化及部署流程中的关键陷阱规避,为企业提供了高效、安全的AI模型部署方案。特别适合金融、医疗等敏感行业。

weixin_29094539的博客 182

设计模型学习-UML图

uml类图

qq_44632658的博客 1637

Windows10检查Cuda和cuDNN是否安装成功?

简介:根据上篇博客已经完成了CUDA和cuDNN的安装步骤,完成对其的安装。下面将来检查它们是否安装成功。 1 .首先win+R进入CMD,在命令行输入nvcc -V,如下图所示,则表示cuda已经安装成功。 2 .进入到cuda的安装路径,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite,找到如下两个.exe文件: 首先执行:deviceQuery.exe,查看是否出现如下界面: 然后执行bandwid

jhsignal的博客 14万+

简单初识 Material Point Method(MPM)

简单初识 Material Point Method(MPM):先介绍了Lagrangian和Eulerian,并简单介绍了MPM Method

qq_45776432的博客 7367

三、类模型-应用设计原则和设计模式

精雕细琢,设计良好的类与类关系 【设计原则】 无论项目开发流程用哪种模式,瀑布、迭代、螺旋、敏捷等。只要是面向对象设计,都应该应用设计原则以提高设计质量 设计SOLID原则: 1.设计原则有什么用? 设计原则就像一把尺子,是衡量类设计的尺子。通过分析来判断设计的类是否符合设计原则的这5个标准,进而调整类的设计,达到设计良好的目的。 2.为什么要用设计原则来衡量类设计的好坏?...

weixin_30539625的博客 257

数据去重复_京东商品评论情感分析|文本数据预处理

本文爬取了十款热销手机的文本评论数据后,首先对文本评论数据做文本预处理,文本评论数据中存在大量的无价值信息,引入无用的文本数据,对其作情感分析,显然没有价值,得出的文本挖掘结果也不尽人意。所以对于文本评论数据先进行文本预处理是必不可少的一步,把大量的、冗余的、无价值的信息去除,可以极大提高文本数据的质量,精确文本分析结果。1 文本去重1.1文本去重的原因文本数据预处理时,首先应去除文本评论数据中反...

weixin_34556808的博客 2074

面向对象设计 5 大核心原则实战:从习题库系统到类图绘制的 3 步建模法

本文详细介绍了面向对象设计的5大核心原则(SOLID)及其在习题库系统设计中的实战应用。通过3步建模法,从需求分析到类图绘制,展示了如何应用单一职责、开放封闭等原则构建健壮系统。文章包含丰富的代码示例和常见误区分析,帮助开发者掌握面向对象设计的精髓。

chuange6363的博客 446

音视频开发基础(1):模拟视频技术简介

模拟视频技术是指用模拟技术对动态影像进行捕捉、记来、处理、存储、传输、复现的技术.模拟视频技术的发明、发展与模拟电视系统的发展密不可分.下面将通过模拟电视系统来介绍模拟视频技术中的基本概念. 首先,人的视觉系统的特征为电视等視稿系铳的发明、发展提供了理论依据.光线通过角膜、腫孔、晶状体的折射光线.透过玻璃体到达视网展.视网膜上分布着光感受器,光感受器在光线的剌激下...

琅嬛福地 1493

【原理图PCB专题】Cadence 17.4版本导出excel版本坐标文件

Cadence 17.4版本导出坐标文件往往都是txt格式,并且无标题、导出时间、导出设计工程多名称等信息。那么怎么样才能导出有带这些信息的excel版本并格式好看的坐标文件呢?

一点硬件 2763

电梯调度算法 C++ 课程设计实战:面向对象建模与5大核心类解析

本文详细解析了电梯调度算法的C++实现,通过面向对象建模展示了5大核心类的设计思路与代码实现。项目涵盖Elevator、Passenger、Building、Scheduler和Request类的UML设计,重点讲解了SCAN算法优化与状态机实现,为操作系统课程设计提供完整解决方案。

weixin_34050005的博客 277

SAP Fiori Launchpad Tile,UI5 应用,和 PFCG Role 的对应关系

问题:已经看到了SAP Fiori Launchpad上的某个tile,如何反推后台需要配置哪个PFCG Role才能看到该tile? 这个问题是今天一个朋友在微信上问我的。因为我最近忙着学习一个新的SAP产品,所以这个问题也没有时间展开来写,本文就只做概要介绍。 下图是一个Gateway系统上打开的SAP CRM Fiori Launchpad: 如何弄清楚后台用户配置了哪个PFCG Role之后,才能看到Sales Representative(CRM)这个Group下的tile? 既然当前我使用的用

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1520

【20171010】面向对象分析与设计方法

OOA和OOD1.面向对象分析OOA模型由5个层次和5个活动组成: 5个层次:主题层、对象类层、结构层、属性层和服务层 5个活动:标识对象类、标识结构、定义主题、定义属性和定义服务除此之外,OOA还定义了两种对象类之间的结构: 1.分类结构:is a(一般与特殊之间的关系) 2.组装结构:has a(整体与部分的关系)2.面向对象设计OOD模型由4个活动组成:设计问题域部件、设计人机交互部件

历乱的日记簿 3293

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

UML 面向对象分析与设计

UML 面向对象分析与设计     面向对象方法以其超越传统方法的技术先进性越来越得到更多的重视,但技术的先进性不能完全代表一种新生事物的最后成功,还要看它是否能得到有效的推广。统一建模语言(UML)的产生为这种推广规定了一致的表示,诸多开发过程模型为技术的应用提供了宏观的指导。   UML 1.模型驱动的开发,回忆一年多前的一次开发 2.UML建模实践概述 ...

博客 199

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

面向对象技术

原则,大部分结构型模式是结构型对象模式,包括:①适配器模式(Adapter)②桥接模式(Bridge)③组合模式(Composite)④装饰模式(Decorator)⑤外观模式(Facade)⑥享元模式(Flyweight)⑦代理模式(Proxy)。这是类之间的一种关系,在定义和实现一个类的时候,可以在一个已经存在的类的基础上进行,并把这个类所定义的内容作为自己的内容,并加入若干新的内容。通常我们总是先引入对象的概念,然后从对对象进行抽象的角度来引入类的概念。用于测试一组协同工作的类之间的相互作用。

qq_60972641的博客 1194

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

实验六 软件详细设计(二)

在已发布状态,用户有三个选项:可以将已发布的攻略重新编辑回草稿状态;从已归档状态到已删除状态:若归档的攻略不再需要,管理员可执行永久删除操作,将攻略从Archived(已归档状态)转变为Deleted(已删除状态)。从草稿状态到已发布状态:用户完成编辑后,通过发布操作将攻略从Draft(草稿状态)转变为Published(已发布状态),此时攻略对其他用户可见。从已发布状态到已删除状态:管理员执行删除操作后,攻略从Published(已发布状态)转变为Deleted(已删除状态),用户无法再访问该攻略。

wenmou1111的博客 960

Myeclipse8.5上JAVA代码导成UML<-->类图

Myeclipse8.5下JAVA代码导成UML类图 myelipse里有UML1和UML2两种方式,UML2功能更强大,但是两者生成过程差别不大 1.建立Test工程,如下图,uml包存放uml类图   package com.zz.domain; public class User { private int id; private String name; public

804

面向对象范型深度解析:Java实习生必修的软件工程核心课(内聚、耦合、封装、继承、多态与UML建模全指南)

耦合(Coupling)衡量的是不同模块(类)之间相互依赖的程度。低耦合是高质量软件的标志,意味着模块独立性强,变更影响范围小;高耦合则导致系统脆弱,一处修改可能引发连锁故障。⚠️警示:高耦合是技术债务的主要来源之一,常导致“不敢改代码”的恶性循环。面向对象范型不是一蹴而就的技能,而是需要在编码、设计、重构、测试的循环中不断深化的认知体系。写代码前先画类图:用UML理清关系。每提交一次PR都问自己:这个类是否高内聚?依赖是否可Mock?把单元测试当作设计工具:测试难写?说明设计有问题!

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 495

UML 2.5 实战:从需求到类图的 5 步建模法,规避 3 个常见设计误区

本文详细介绍了UML 2.5在面向对象设计中的应用,通过5步建模法从需求分析到类图设计,帮助开发者规避常见设计误区。结合图书馆借阅系统案例,展示了如何构建高质量的类图,提升软件系统的可维护性和可扩展性。

weixin_30378623的博客 377

UML(统一建模语言)详细笔记

UML(统一建模语言)详细笔记

质量不太好的博客 864
上一篇: 4 面向对象建模 系统分析
下一篇: 6 面向对象建模 实现对象
dabusidede
博客等级 码龄9年 84粉丝 208原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值