UML类图:如何建模关于调用方法或启动活动或服务的关系

che*_*der 6 android uml class-design class-diagram object-oriented-analysis

我正在创建我的第一个Android应用.我已经避免将关联标记为用户或系统交互(例如,我标记了开始而不是开始点击 ;我标记了开始而不是startsWhenDetection).然而,看完这个,我正在考虑改变开始由协会<< >>创建的依赖.我糊涂了!

该应用程序如下工作.当应用程序启动时,LauncherActivity将调用BaseActivity的方法来启动SettingsActivity中标记的活动(它也可能是SettingsActivity).LauncherActivity也将推出这两项服务.这是图:

全班图

注意:这个问题是延续这个问题.

Gan*_*nus 5

它不是真正的类图.

  • 开始和调用属于笔记,或者如果您确定要在连接上看到它们,请对DEPENDENCIES进行构造,而不是关联.
  • 您仍然没有关联,它们是类图的主要部分.看看这里有关如何使用它们.您应该首先创建关联.只有在那之后才显示依赖关系.(这不是一个常见的规则,但你应该这样做以便更好地理解)
  • 至于你试图在这里显示的动作,为它们做状态机图,然后可能是序列或活动图.不要使用交互概览图,你会迷失它.

但是停止在类图上放置这么多动作

恕我直言,因为活动没有或几乎没有结构依赖,适当的类图将非常差 - 没有关联的简单块.整个领域的依赖关系......所以,类图在这个级别上没用.看来,我已经告诉过你,类图是针对同一个Android意图的类 - 一个或多个意图.

至于通信图,我认为不是你的情况.与序列或活动图相比,它更接近用户.这是因为你有很多种消息而且你正在计划他们的路线.例如,对于Camel计划.但唉 - 它还没有实现消息模式.因此,它仍然只适用于具有大量消息传递的系统的非常常见的规划.您的"消息"正在启动,启动组件等.您无法使用该图表显示它.

您可以尝试对象图复合结构图.如果要在类图上显示功能,则无法执行此操作,但可以转到这些功能.

  • @chelder从对象/实例中划分类.它们在Java中并不相同.正如我从代码中看到的,PowerButtonPushedDetectorService是一个对象.我担心你说的很多东西都是对象.查看对象图,您可以在类中使用端口.每个端口为连接到它的其他类或对象提供一些服务.对你的问题来说似乎更合适. (2认同)
  • @chelder如果我们在类图中,则存在从LauncherActivity到Intent Instance的单向导航关联,其中service2start作为实例和属性名称.从该intent实例到PowerButtonPushedDetectorService的另一个可导航关联.至于属性的名称,请查看Intent构造函数代码,其中放置第二个参数. (2认同)
  • @chelder No.我的意思是对象诊断,或者......好的,复合结构图.如果要在类图上显示功能,则无法执行此操作,但可以转到这些功能.顺便说一句,谢谢你,你让我看到UML标准中的类图中出现的问题比我之前知道的要多.绝对+1为它. (2认同)
  • @chelder我认为,因为活动没有或几乎没有结构依赖,适当的类图将非常差 - 没有关联的简单块.整个领域的依赖关系......所以,类图在这个级别上没用.看起来,我已经告诉过你,类图是针对同一个Android意图的类 - 一个或意图的矿. (2认同)
  • @chelder 1.是的,我的意思是第二个CSD.至于沟通,我认为不是你的情况.与序列或活动图相比,它更接近用户.这是因为你有很多种消息而且你正在计划他们的路线.例如,对于Camel计划.但唉 - 它还没有实现消息模式.因此,它仍然只适用于具有大量消息传递的系统的非常常见的规划.您的"消息"正在启动,启动组件等.您无法使用该图表显示它. (2认同)
  • @chelder和plesae,请注意,感谢此处的SO主要由upvotes和检查答案表达:-) (2认同)