的UML类图是用于构建和可视化的面向对象的系统的图形表示法。统一建模语言 (UML) 中的类图是一种静态结构图,它通过显示系统的以下内容来描述系统的结构:
类是对象的蓝图。对象和类齐头并进。我们不能只谈一个而不谈另一个。面向对象设计的重点不是关于对象,而是关于类,因为我们使用类来创建对象。所以一个类描述了一个对象将是什么,但它不是对象本身。
事实上,类描述了对象的类型,而对象是类的可用实例。每个对象都是从同一组蓝图构建的,因此包含相同的组件(属性和方法)。标准含义是对象是类和对象的实例——对象具有状态和行为。
例子
一只狗有状态——颜色、名字、品种以及行为——摇摆、吠叫、吃东西。对象是类的一个实例。
UML 类表示法
类表示封装状态(属性)和行为(操作)的概念。每个属性都有一个类型。每个操作都有一个签名。类名是唯一的强制性信息。
类名称:
类属性 (Attributes):
类操作(Methods):
类中属性和操作名称前的 +、- 和 # 符号表示属性和操作的可见性。
操作(方法)中的每个参数都可以表示为 in、out或inout,它们指定了其相对于调用者的方向。此方向性显示在参数名称之前。
视角的选择取决于您在开发过程中走了多远。例如,在制定领域模型的过程中,您很少会超越概念视角。分析模型通常具有概念和规范观点的混合。设计模型开发通常会从高度强调规范视角开始,然后演变为实现视角。
可以从不同的角度解释图表:
视角会影响要提供的细节数量和值得呈现的关系类型。正如我们上面提到的,类名是唯一的强制性信息。
UML 不仅仅是漂亮的图片。如果使用得当,UML 准确地传达了应该如何从图表中实现代码。如果精确解释,实现的代码将正确反映设计者的意图。你能描述下图中每个关系相对于你的目标编程语言的含义吗?
如果您还不能识别它们,那么本节旨在帮助您理解 UML 类关系。一个类可能涉及与其他类的一种或多种关系。关系可以是以下类型之一:
泛化是更通用的分类器和更具体的分类器之间的分类关系。特定分类器的每个实例也是通用分类器的间接实例。因此,特定分类器继承了更一般分类器的特征。
下图显示了继承层次结构的示例。SubClass1 和 SubClass2 派生自 SuperClass。该关系显示为带有空心箭头的实线,该箭头从子元素指向父元素。
下图显示了具有两种样式的继承示例。尽管连接器的绘制方式不同,但它们在语义上是等价的。
关联是 UML 类图中的类之间的关系。它们由类之间的实线表示。关联通常使用反映现实世界问题域的动词或动词短语来命名。
下图显示了一个简单关联的示例。有一个连接 <> 类 Class1 和 <> 类 Class2 的关联。该关系显示为连接两个类的实线。
基数表示为:
一种特殊类型的关联。
下图显示了聚合的示例。关系显示为实线,在关联端有一个未填充的菱形,它连接到表示聚合的类。
下图显示了一个合成示例。关系显示为实线,在关联端带有实心菱形,它连接到表示整体或组合的类。
一个类的对象可能在方法代码中使用另一个类的对象。如果对象未存储在任何字段中,则将其建模为依赖关系。
下图显示了依赖关系的示例。该关系显示为带有空心箭头的虚线。
下图显示了依赖关系的另一个示例。Person 类可能有一个带有 Book 参数的 hasRead 方法,如果该人已经阅读了这本书(可能通过检查某个数据库),则该方法返回 true。
实现是蓝图类和包含其各自实现级别细节的对象之间的关系。据说这个对象实现了蓝图类。换句话说,您可以将其理解为接口和实现类之间的关系。
例如,Owner 接口可能指定获取财产和处置财产的方法。Person 和 Corporation 类需要以非常不同的方式实现这些方法。
类图也可能附有类或关系的注释。
您已经了解了什么是类图以及如何绘制类图。是时候绘制自己的类图了。您是否正在寻找一个免费的 UML 工具来更快、更轻松、更快速地学习 UML?
Visual Paradigm Community Edition 是一个支持所有 UML 图类型的 UML 软件。它是一个国际获奖的 UML 建模器,但它易于使用、直观且完全免费。它易于使用且直观。
免费下载
上一篇
Ansell氣體檢測儀/手術手套/檢查手套型號Ansell’s Industrial部門制造和銷售針對手,腳和身體保護的高性能,多用途保護解決方案,適用於各種工業應用。Ansell是全球領先的保護解決
下一篇
本文共69691字,耗時約263小時,預計閱讀時間85~120分鐘,宜深度閱讀(2023年1月11日更新)我自2016年起在復旦大學、上海交大...