为了账号安全,请及时绑定邮箱和手机立即绑定

5分钟入门类图

标签:
iOS

前言:

​类图就像工程蓝图;它们通过图片、符号和注释的媒介提供关于系统的信息。

读者们可能听说过统一建模语言(UML),它是一种用于创建类图、体系结构图和其他系统图的标准语言。我们不需要在日常的iOS开发中理解大量的UML。所以,了解简单的,帮助我们创建类图和描述设计模式即可。

类图的内容

类图包括类、协议、属性、方法和关系。方框表示类。下面是一个非常简单的Dog类类图:

若要指示一个类从另一个类继承,请使用开放箭头:

但是不要把这个读成“inherits from”,把这个读成“is a”。例如,为了表示牧羊犬继承了Dog的遗产,读者可以绘制如下图:

一般我们会把这句话从头到尾读出来,就像“牧羊犬是狗”一样。“

使用普通的箭头来表示一个属性,在UML术语,它被称为一个联合:

类图可以从下到上,从左到右,或者以你希望的任何其他方向编写。无论你选择什么方向,箭头的方向都定义了含义:继承箭头始终指向超类,属性箭头始终指向属性类。

读者们应该将属性箭头读取为“has a”。“举个例子,如果一个农夫有一只狗,可以这样画:

读者可以通过在箭头旁边指定一个范围来指示一对多关系。例如,我们可以这样表示一个农民有一只或多只狗:

我们应该始终在类图中使用类名的单数形式,即使正在传递一对多的关系。在这种情况下,应该写Dog,而不是Dogs

我们可以在一个类图中使用任意多的箭头和框。例如,表示一个农民有一个牧羊犬,一只狗:

还可以使用一个框来表示协议。然而,为了将其与类区分开来,我们需要在其名称之前编写<<protocol>>

我们可以这样表示一个叫做PetOwning的协议:

使用一个带有虚线的开放箭头来表示一个类实现了一个协议:

我们可以将其视为“实现”或“遵从”。“例如,表明农民实现PetOwning是这样的:

使用一个带有虚线的普通箭头来表示“使用”,在UML术语中这被称为“依赖”:

UML有意模糊了什么是“依赖”。因此,无论何时使用依赖项箭头,通常都应该注释其用途。例如,您可以使用依赖项箭头来指示以下内容:
annotate: 注释;给…作注释或评注

  • 弱属性或委托。

  • 一个对象作为参数传递到一个方法,但不是作为一个属性。

  • 松散耦合或回调,比如IBAction从一个视图控制器。

下面是如何指示Dog将委托给PetOwning对象:

还可以在类图中表示属性和方法。例如,显示PetOwning名称属性和petNeedsFood(_:)方法是这样的:

如果箭头的意思很明显,可以省略何解释性文本。通常可以省略对继承、属性和实现箭头的解释。但是,我们通常应该将文本保留为“uses”箭头,因为它们的含义并不总是显而易见的。

下图表明了教授(Professor)是一名(is a)教师,然后把教师(Teacher)委托给Person对象:

image.png

总结

在本文,我们简单学习了类图的基础知识。以下是学到的关键点:

  • 类图给出了类和协议类型的可视化表示,显示了它们的属性和方法。

  • 类图还显示了对象类型之间的关系。

  • 类图可以以任何其他方向绘制;箭头的方向定义了含义。

  • 框表示类,行表示关系:“implementation”、“has a”、“uses”和“conforms to”是最常见的关系。

  • 框还可以表示协议,在名称前用<>表示。

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消