设计模式前站——UML类图
符号表示访问权限:
+表示public
-表示private
#表示protected
~表示default,也就是包权限
_下划线表示static ,或者直接写上static
斜体表示抽象
类之间关系:类与类一共有如下几种关系:继承(Generalization)、实现(Realization)、依赖(Dependence)、关联(Association)、聚合(Aggregation)、组合(Composition)。
继承:三角形+实线【三角是父类】
实现:三角形+虚线【三角是接口】
依赖:箭头+虚线【箭头是局部变量,或方法参数,对静态方法调用】
关联:箭头+实线 【箭头一方是成员变量】
聚合:空心菱形+实线箭头【菱形一方为整体】
组合:实心菱形+实线箭头【菱形一方为整体】
1、继承关系
继承关系用三角形+实线表示,方向从子类指向父类。
2、实现关系
实现是类与接口的一种关系,类实现接口的所有特征与行为。接口有标识<<interface>>
实现关系用三角形+虚线表示,方向从类指向接口。
3、依赖关系
依赖关系是一种弱的使用的关系, 即一个类的实现需要另一个类的协助。
依赖关系用箭头+虚线表示,方向从依赖类指向被依赖类。
动物依赖氧气和水。
代码体现在局部变量、方法的参数或者对静态方法的调用
public class Animal { public int lives; public void breeding() { if (lives > 0) { System.out.println("我要繁殖啦~"); } } //新方法,新陈代谢 public void metabolism(Oxygen o, Water w) { System.out.println("新陈代谢需要" + o.toString() + "和" + w.toString()); } }
4、关联关系
关联关系比较常见,是一种强的、稳定的、持久的关系, 它使一个类知道另一个类的属性和方法。
关联关系用箭头+实线表示。方向从关联类指向被关联类。
代码体现在成员变量(气候是企鹅类的成员变量)中
5、聚合关系
聚合关系表示部分与整体的一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。
聚合关系用空心菱形+实线箭头表示,菱形顶端为整体。
代码体现在成员变量中,可以通过构造方法传递依赖,也可通过setter方法传递依赖。
public class WideGooseAggregate {
private WildGoose[] arrayWideGoose = new WildGoose[3]; public WideGooseAggregate(){ arrayWideGoose[0] = new WildGoose(); arrayWideGoose[1] = new WildGoose(); arrayWideGoose[2] = new WildGoose(); } public void vFly() { System.out.println("V型飞行"); for (WildGoose wGoose : arrayWideGoose) { wGoose.flyaway(); } } public void hFly() { System.out.println("一型飞行"); for (WildGoose wGoose : arrayWideGoose) { wGoose.flyaway(); } } }
6、组合关系
组合关系表示部分与整体的一种强的拥有关系,体现为严格的部分和整体关系,部分和整体的生命周期一样。
组合关系用实心菱形+实线箭头表示,菱形顶端为整体。
代码体现在成员变量中
本文作者:好Wu赖
本文链接:https://www.cnblogs.com/erlongxizhu-03/p/12584138.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现