我已经开发了一个简单的Workout Android应用,没有考虑到uml类图。现在我要重构它。
在主屏幕上,只有一个按钮可以开始锻炼。通过单击它,将触发10秒钟的倒计时,等待该人准备就绪。
然后,该应用程序将一次显示多个练习,每个练习之间都有一个休息时间。每次练习需要30秒;每个中断间隔10秒在每次锻炼/休息时,该应用都会显示以下信息:
最后,当锻炼结束时,应用程序会显示GIF作为庆祝活动。在最后一个屏幕上,还有一个“回家”按钮。
但是,我不确定这是否是描述场景的正确方法。如果能得到一些反馈/评论,我将不胜感激。
我有疑问的主要事情之一就是要处理WorkoutActivity
类。它在图中没有属性,因为我无法以对这个问题进行建模的方式来考虑任何属性。而且因为它是空的,对我来说有点奇怪。我曾考虑过使用列表类(例如ExercisesList
)来对练习集进行建模,但是我有点受此图的困扰。
另一个问题是关于按钮,我应该在图中包括它们吗?
这完全取决于您要代表什么。
如果您的模型适用于锻炼领域,请保持简单:不需要按钮(用户界面对象)和计时器(执行上下文)。
在叙述中,您提到了一个“锻炼环节”。我假设这就是WorkoutActivity
的含义。因此最好与命名保持一致。
您可以轻松想到属性:这是会话的日期和时间(以及用户帐户?):这可以使用户遵循他/她在培训中的规律性。
更通用的方法是使WorkoutSession
由多个抽象WorkoutActivity
组成(警告:与当前图中的含义不同)。每个WorkoutActivity
都是一个专业化项目:Exercise
,BreakInterval
或InfoActivity
(例如FinalActivity
,但为什么也没有StartActivity
活动来鼓励新用户,以及其他偶尔的活动,例如提示和技巧,或广告)。类似于:
每次练习后休息一会的约束不一定是结构性的:它可以是您在组成或生成会话时强制执行的约束。如果以后您希望每2或3个练习(例如:高级用户)休息一下,这将为您提供更大的灵活性。