类图到底该如何画

简介: 类图到底该如何画

什么是类图?

要学习如何画类图的话那么我们首先要明确一下什么是类图?


顾名思义,类图是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。


类图的组成:

类名、属性、方法


类之间的关系:

继承、实现、依赖、关联、组合、聚合


绘制类图的格式:

类:


881db41aa603423b98825ade5aea174f.png


接口:


18a7bd89d2914e33892a3eca809f9fdc.png


抽象类:


5d17d826bddd4b5687fabcdc4018cf37.png


需要注意的地方:


接口一定有 <<interface>> 的标识,接口中的方法必须斜体(默认都是抽象方法)

抽象类名和抽象方法必须斜体,非抽象方法不斜体

注意访问控制符、返回值、参数等格式的正确性

类中属性、方法要描述全面

类中使用注解或者new的方式声明的其他类的成员变量也是该类的属性:

原因一:对此类本身而言,此类的类内结构包括属性(成员变量)和方法(成员方法)

原因二:对类间关系而言,虽然这个类与其他类(这个类声明其他类对象)之间有关联(或其他关系),但是这个关系是体现在类间的。


为使程序灵活、可扩展、可复用的角度出发,将程序service层架构设为3层,接口 -> 抽象类 -> 实现类。


至于为什么有了接口还要增加一层抽象类?


观点1:抽象类是接口与实现类之间的桥梁。


让抽象类去实现接口,而不是每个实现类去实现接口,实现类一致的行为(或者说大部分一致的行为)在抽象类中进行实现,而不一致的行为(或者一小部分不一致的行为),在抽象类中写成抽象方法,让子类去重写,减少子类重写接口所有方法的负担。


接口与类的设计原则:


接口:接口隔离原则


接口应该尽量细化,一个接口对应一个功能模块。使接口轻便灵活,而不是臃肿不堪。要求“尽量使用多个专门的接口”,专门的接口是指提供给每个模块的都应该是单一接口(即每个模块对应一个接口),而不是建立一个庞大臃肿的接口来容纳所有客户端访问。


类:单一职责原则


代码中的具体体现,一个类中只能有一个 public 方法,而其他 private 方法都是为这一个 public 方法服务。也就是,对于外界来说,只能有一个方法仅供外界访问。


相关文章
通过E-R理解 主键和外键的关系
实例 现有课程和教师两个实体,课程实体的属性有课程名称、课程编号、课程属性、考试类型;教师实体的属性包括姓名、工号、职称;一门课程可以有多个教师,且每一位教师可以教授多门课程。教师每教授一门课有课序号。
6221 1
通过E-R理解 主键和外键的关系
Touch命令使用指南:创建、更新和修改文件时间戳
Touch命令使用指南:创建、更新和修改文件时间戳
1202 0
Spring AI与DeepSeek实战一:快速打造智能对话应用
在 AI 技术蓬勃发展的今天,国产大模型DeepSeek凭借其低成本高性能的特点,成为企业智能化转型的热门选择。而Spring AI作为 Java 生态的 AI 集成框架,通过统一API、简化配置等特性,让开发者无需深入底层即可快速调用各类 AI 服务。本文将手把手教你通过spring-ai集成DeepSeek接口实现普通对话与流式对话功能,助力你的Java应用轻松接入 AI 能力!虽然通过Spring AI能够快速完成DeepSeek大模型与。
778 11
分享一些在 1688 上找一件代发商品的技巧
在1688上找一件代发商品需明确自身需求与定位,筛选可靠供应商,研究商品信息,利用精准搜索和平台推荐,关注活动,并与供应商充分沟通,确保合作顺畅。
小程序二手商城|使用Springboot+vue+微信小程序开发校园二手商城系统
本项目基于Springboot+vue+微信小程序实现了一个校园二手物品商城交易系统。系统的后台使用springboot+mybatis开发实现,后台管理页面使用Vue+ElementUI开发实现,用户端基于微信小程序开发实现。前端用户使用微信登录小程序后,可以在线浏览二手商品,并在线购买下单和评论等,同时自己也可以发布相应的二手商品,并管理自己的订单信息和销售信息。管理员登录后台管理系统可以管理人员、商品分类、商品、订单等相关信息。具体见下面展示。
425 0
Python 中的数据处理技巧:高效数据操作的艺术
Python 在数据处理方面表现卓越,为开发者提供了丰富的工具和库以简化数据操作。在本文中,我们将探讨 Python 中数据处理的一些技巧,包括数据清洗、数据转换以及优化数据操作的最佳实践。通过掌握这些技巧,您可以在 Python 中更加高效地处理和分析数据。
create connection error, url: jdbc:mysql://localhost:3306/ssm, errorCode 1045, state 28000 java.sql.
create connection error, url: jdbc:mysql://localhost:3306/ssm, errorCode 1045, state 28000 java.sql.
319 0
座位预约|座位预约小程序|基于微信小程序的图书馆自习室座位预约管理系统设计与实现(源码+数据库+文档)
座位预约|座位预约小程序|基于微信小程序的图书馆自习室座位预约管理系统设计与实现(源码+数据库+文档)
530 0
408王道计算机组成原理强化——数据的运算及大题(下)
408王道计算机组成原理强化——数据的运算及大题
703 1
408王道计算机组成原理强化——数据的运算及大题(下)
AI助理
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问

你好,我是AI助理

可以解答问题、推荐解决方案等