在 UML 类图上表示 Objective C 协议

Posted

技术标签:

【中文标题】在 UML 类图上表示 Objective C 协议【英文标题】:Representing Objective C Protocols on UML class diagrams 【发布时间】:2010-04-12 20:29:45 【问题描述】:

我应该如何正确引用 UML 类图上的协议?

例如,我的ListViewController 符合UITableViewDataSourceUITableViewDelegate 协议...我将cellForRowAtIndexPathnumberOfRowsInSection 方法放在哪里? ...在ListViewController 实现它们的地方或类似的地方:

         <<Protocol>>
    UITableViewDataSource 
    ---------------------

    ---------------------
    -numberOfRowsInSection 

如果我做后者,ListViewController 类和协议框之间的关联是什么?我要展示的只是我如何以某种方式与 Cocoa Touch 挂钩。

谢谢。

【问题讨论】:

【参考方案1】:

协议在某种程度上等同于 java 中的接口,因此您可以找到 java UML 图并对其进行处理。

另外,来自http://en.wikipedia.org/wiki/Class_diagram:

在 UML 建模中,实现 关系是之间的关系 两个模型元素,其中一个模型 元素(客户端)实现 其他模型元素的行为 (供应商)指定。一种 虚线表示实现 带有未填充箭头的线 对供应商

...

之间的一种实现关系 类和接口以及它们之间 组件和接口表明 类实现操作 由接口提供。

因此,如果我没看错的话,ListViewController 将有一条虚线,其中一个未填充的箭头指向UITableViewDataSource

【讨论】:

以上是关于在 UML 类图上表示 Objective C 协议的主要内容,如果未能解决你的问题,请参考以下文章

UML实践详细经典教程----用例图顺序图状态图类图包图协作图

在 UML 图类中指定集合类型

谁知道在visio中画类图啊,java类已有啦

ML实践详细经典教程----用例图顺序图状态图类图包图协作图

visio2013uml类图不能双击

UML 类图