【一】【设计模式】类关系UML图

1. 继承(Generalization)

继承是对象间的一种层次关系,允许子类继承并扩展父类的功能。

UML线:带有空心箭头的直线,箭头指向基类(父类)。

 
class Parent {public void parentMethod() {System.out.println("This is a method in the parent class.");}
}class Child extends Parent {public void childMethod() {System.out.println("This is a method in the child class.");}
}

在这个例子中,Child类继承了Parent类,拥有Parent类的方法以及自己的方法。

2. 实现(Implementation)

实现关系指的是类实现接口中声明的方法。

UML线:带有空心箭头的虚线,箭头指向接口。

 
interface Animal {public void eat();
}class Dog implements Animal {public void eat() {System.out.println("Dog is eating.");}
}

Dog类实现了Animal接口,提供了eat方法的实现。

3. 关联(Association)

关联表示不同类的对象之间的连接。它可以是双向的,也可以是单向的。不是其他的关系,并且两个类有联系,就是关联关系。

UML线:普通的直线,两端可能有箭头,表示关系的方向。箭头或无箭头取决于关系的双向性或单向性。通常会在线旁边标注角色名和/或多重性(比如1..*表示一个到多个)。

双向关联

 
public class Customer{private product[] prodects;}
public class Product{private Customer customer;}

单向关联

 
public class Customer{private Address address;}
public class Address{}

自关联

 
public class Node{private Node subNode;}

多重关联

 
public class Form{private Button[] buttons;}public class Button{}

一个按钮,与1到1和界面有关。一个界面,与0到多个按钮有关。

4. 聚合(Aggregation)

聚合是一种特殊的关联关系,表示“整体-部分”关系,但部分可以脱离整体单独存在。聚合关系通常使用成员变量来实现,且成员变量的生命周期不由容器对象管理。

UML线:带有空心菱形的直线,菱形在整体的一端,箭头指向部分的一端。

 
public class Car {private Engine engine;public Car(Engine engine){this.engine=engine;}public void setEngine(Engine engine){this.engine=engine;}
}public class Engine  {}

5. 组合(Composition)

组合也是一种“整体-部分”关系,但与聚合不同的是,部分不能脱离整体存在。在组合关系中,部分的生命周期由整体管理。

UML线:带有实心菱形的直线,菱形在整体的一端,箭头指向部分的一端。

 
public class Head{private Mouth mouth;public Head(){mouth=new Mouth();}
}
public class Mouth{}

6. 依赖(Dependency)

依赖表示一个类的实现依赖于另一个类的定义。一个类的实现需要另一个类的协助。

UML线:带有箭头的虚线,箭头指向被使用者,被依赖者。

 
public class Driver{public void drive(Car car){car.move();}
}public class Car{public void move(){}}

Driver需要使用Car类方法,Driver依赖于Car,Car被Driver所依赖。Car被依赖,Driver是依赖方。

结尾

最后,感谢您阅读我的文章,希望这些内容能够对您有所启发和帮助。如果您有任何问题或想要分享您的观点,请随时在评论区留言。

同时,不要忘记订阅我的博客以获取更多有趣的内容。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。

谢谢您的支持,期待与您在下一篇文章中再次相遇!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/535179.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32第十课:串口发送

一、usart串口 1.1 USART串口协议 串口通讯(Serial Communication) 是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。在计算机科学里&…

提速电商效果图云渲染:优势与策略

云渲染为电商效果图提供了快速、高效的解决方案,利用其庞大的计算能力和并行处理优势,即便是复杂场景也能迅速渲染完成,大幅提高工作效率和加快产品上市节奏。 一、电商效果图有什么用? 电商效果图在电商行业中扮演着至关重要的角…

Midjourney封禁Stability AI:恶意爬取数据,致服务器瘫痪24小时

这两家 AI 图像生成公司之间发生什么事了。虽然 AI 生图领域,看似百花齐放,但论资排辈,Midjourney、Stability AI 还是很受用户欢迎的。 Midjourney 把 Stability AI 拉入黑名单了,禁止后者所有员工使用其软件,直至另…

Could not use APOC procedures

报错内容: Traceback (most recent call last):File "/root/anaconda3/envs/sakura/lib/python3.9/site-packages/langchain_community/graphs/neo4j_graph.py", line 205, in __init__self.refresh_schema()File "/root/anaconda3/envs/sakura/lib…

linux系统docker网络介绍

网络介绍 docker网络网络情况docker不启动,默认网络情况docker启动,网络情况 常用基本命令all命令查看网络创建新的网络查看网络源数据删除网络 docker网络作用docker网络模式bridgehostnonecontainer自定义网络模式容器实例内默认网络ip生产规则 docker…

Uni-app跟学笔记(一):新建项目、运行、tabbar、全局配置

文章目录 1)新建项目2)项目运行3)项目结构4)开发规范5)globalStyle全局外观配置6)pages页面配置7)tabbar8)Condition 本博客为 uni-app 此门课的跟学笔记,目的是便于个人…

建立网站的费用大概需要多少钱?

网站建设是很多人都熟悉的事情,因为现在无论是大公司还是中小企业都有自己的网站。 当你有了网站之后,你可以将公司的信息上传到网站上,这样可以让很多客户在浏览的时候更多地了解公司。 虽然现在大多数企业都有自己的网站,但是很…

铭文:探索比特币世界的数字印记

铭文是什么? 铭文指的是在某种物品(如石头、硬币、平板等)上刻有文字。在比特币领域,铭文指的是刻在聪(satoshi)上的元数据。比特币的最小单位是聪,1比特币可分为1亿聪。每个聪都通过序数理论进…

专题二 -滑动窗口 - leetcode 209. 长度最小的子数组 | 中等难度

leetcode 209. 长度最小的子数组 leetcode 209. 长度最小的子数组 | 中等难度1. 题目详情1. 原题链接2. 基础框架 2. 解题思路1. 题目分析2. 算法原理3. 时间复杂度 3. 代码实现4. 知识与收获 leetcode 209. 长度最小的子数组 | 中等难度 1. 题目详情 给定一个含有 n 个正整数…

5款可以免费使用的 UI 设计软件

在我们分享五个有用的原型工具之前,完成原型并优化界面。这是 UI 设计师的任务。UI 设计软件对设计师来说非常重要。UI 设计工具的使用是否直接影响最终结果,然后有人会问:UI 界面设计用什么软件?一些 UI 设计师和对 UI 设计感兴趣…

《深入Linux内核架构》第2章 进程管理和调度 (1)

目录 前言 2.1 进程优先级 2.2 进程生命周期 2.3 进程表示 2.3.1 进程类型 2.3.2 命名空间 2.3.3 进程ID号 2.3.4 进程关系 2.4 进程管理相关的系统调用 2.4.1 进程复制 2.4.2 内核线程 2.4.3 启动新程序 2.4.4 退出进程 前言 本章内容太多,分为两篇博…

2024年无人直播是否已经成为新趋势,商家使用矩图AI无人直播月均增长5万+

无论是 个体商户、企业经营者、电商从业者、想创业赚钱的朋友;也不管你是做餐饮还是非餐饮;亦或是抖音小时达外卖。这篇文章,请勿必看完,对你的业绩增长是有绝对的帮助。 无人直播的发展经历了几个时代,现在已经到了4.0的时代,更安…