前言:
类图就像工程蓝图;它们通过图片、符号和注释的媒介提供关于系统的信息。
读者们可能听说过统一建模语言(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
对象:
总结
在本文,我们简单学习了类图的基础知识。以下是学到的关键点:
-
类图给出了类和协议类型的可视化表示,显示了它们的属性和方法。
-
类图还显示了对象类型之间的关系。
-
类图可以以任何其他方向绘制;箭头的方向定义了含义。
-
框表示类,行表示关系:“implementation”、“has a”、“uses”和“conforms to”是最常见的关系。
-
框还可以表示协议,在名称前用<>表示。
共同学习,写下你的评论
评论加载中...
作者其他优质文章