UML之类图

本文介绍了类图的基本概念,包括类、接口、关联等元素及其关系,并通过机房收费系统的实例展示如何绘制类图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

   类图用来表示系统内部的静态结构。具体来说,开发人员可以通过类图的设计,将数以万行的程序代码分门别类,以构成系统内部的静态结构。每个类中都包含属性和操作。类图显示了类、接口、协作以及他们之间的关系,主要应用于设计阶段和实现阶段。


内容

   类图主要由类、接口、协作和联系构成。


   类是具有相似行为、属性和关系的一组对象的描述符,它分成三部分: 名称、属性和操作(方法)。属性描述了类的一些特性,操作或者说方法是类要实现的事务。很多时候,我们对操作的划分很难处理,例如充值这一操作,到底是划分到学生这一类中还是划分到卡这一类中。这里我们就找到底是谁执行充值这个动作呢。当然是学生了,所以充值这一操作就要划分到学生的类中。

   


接口

   接口是在没有给出对象的实现和状态的情况下对对象行为的描述,接口包含操作但不包含属性,且它没有对外界可见的关联。在UML中用一个小圆圈表示。

   


关系

    包括关联、依赖、泛化和实现。

    关联,就是两者之间具有关系,包括普通的联系、组合和聚合。其中组合和聚合虽然都是整体-部分关系,但是要加以区分。组合是组成部分不可以单独成为个体,必须依赖于主体而存在。例如公司由部门组成,没有公司就没有部门,部门不能独立存在。聚合则恰恰相反,其部分可以独立存在。例如自行车由轮胎构成,轮胎是可以独立存在,这就是聚合。联系用直线表示。

    依赖:是一种使用关系,即A中的方法应用了B中的方法,就称A依赖B。依赖用直线+箭头表示。

    泛化:继承,子类继承父类,就像孩子继承父亲的财产一样。泛化用虚线+小三角箭头表示。例如海豚和孔雀继承了动物这一类。

    实现:一个类元描述了另一个类元的实现契约。例如遥控器实现了电视机的换台接口。


机房收费的类图

    下面是我画的机房收费系统的类图,此文全部代表个人看法,欢迎大家与我交流!

     

                                                                                                                              感谢您的阅读!微笑

### UML静态的概念 UML静态是一种结构化建模工具,主要用于描述系统的静态结构。它通过形化的方式展示系统中的及其相互关系,帮助开发者理解并设计复杂的软件架构[^2]。 #### 的主要构成要素 1. **(Class)** 表示系统中的实体或概念,通常由三个部分组成:名称、属性和方法。这些元素共同定义了一个的行为和状态。 2. **关联(Association)** 描述两个之间存在的逻辑连接,可以是一对一、一对多或多对多的关系。例如,“订单”与“客户”的关系可能表示为“一个客户可以有多个订单”。 3. **继承(Inheritance)** 子从父派生出来的机制,子会自动获得父的所有属性和行为。这种层次化的组织方式有助于减少重复代码。 4. **聚合/组合(Composition and Aggregation)** 聚合表示一种弱依赖关系;而组合则更强调强耦合性,即当整体被销毁时,部分也会随之消失。 --- ### 示例解释 以下是基于上述理论的一个简单例子: 假设我们正在开发一款电子商务平台,其中涉及几个核心业务对象:“Product(产品)”, “Category(别)” 和 “OrderDetail(订单详情)”。下面是一个简单的UML静态的设计方案: ```plaintext +-------------------+ | Category | +-------------------+ | - id: int | | - name: string | +-------------------+ | + addProduct() | | + removeProduct()| +-------------------+ ▲ / \ / \ v v +------------------+ +--------------------+ | Product |<----------------| OrderDetail | +------------------+ +--------------------+ | - productId: int | | - quantity: int | | - name: string | | - price: double | | - category: ref | | - product: ref | +------------------+ +--------------------+ | + getPrice() | | + setPrice() | +------------------+ ``` 在这个模型中: - `Category` 是产品的分容器,具有自己的 ID 和 名字,并且能够管理属于它的 Products 列表; - `Product` 包含基本信息比如名字、价格以及所属的 Category 参考; - `OrderDetail` 记录了某个特定数量的产品实例,同时还持有该产品的引用以便计算总价等操作。 以上就是如何利用 UML 静态表征实际应用领域内的某些方面的方法之一[^1]。 --- ###
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值