【问题标题】:UML: Object DiagramUML:对象图
【发布时间】:2016-11-19 16:56:03
【问题描述】:

我是 UML 的初学者。 下面是一个 UML 对象模型图,显示了一个名为 Timer 的对象,它具有整数类型的分钟和秒属性,以及公共操作 tick() 和 reset()。

对应的C结构为:

struct Timer_t {
   int mins;    /*## attribute mins */
   int secs;    /*## attribute secs */
};

/* Operations */
/*## operation reset() */
void Timer_reset();
/*## operation tick() */
void Timer_tick();

关于此图,我想了解以下内容的物理解释:

1- 左上角的1(是在应用程序生命周期内实例化的实例数吗?)

2-<<Singleton>>(如果强调对象是单例类的实例是刻板印象,那为什么还要在左上角提到1?)

来源:UML for C Programmers

【问题讨论】:

    标签: c uml


    【解决方案1】:

    首先,上面不是一个对象(/实例)而是一个类。对象在隔间中不显示属性/方法,并且名称将带有下划线。

    其次,<<Singleton>> 刻板印象放置错误。它需要出现在类的名称下。

    第三,1 左上角的信号多样性需要用括号括起来,如{1}。不知道位置,我只知道班级名称的正下方。

    现在关于您的问题。多重性告诉系统中必须只有一个此类的实例。刻板印象<<Singleton>> 并没有说明其他任何事情(这是一个重言式)。然而,Singleton 这个名字是众所周知的,你可以通过谷歌找到任何语言的实现模式——这对于关键字 1 会失败;-)

    【讨论】:

    • 来自此来源:drdobbs.com/cpp/uml-for-c-programmers/184401948,正如您所见,他们称之为:图 1:计时器对象。
    • 这是一个单一对象模型的类图。但是,是的,它是一个类图。 @thomaskilian 写的所有内容都是准确和真实的。我建议您先阅读一些关于 UML 本身的内容,然后再使用 UML 和 C 之间的链接。
    • 仅仅声称拥有博士学位并不能说明他所说的一切都是正确的;-) 通常,在非 OO 语言中使用 OO 是很棘手的。弗洛伊德教授在我曾经上课的地方使用 COBOL 来教授(某种)OO,因为在这两个世界之间进行分割非常困难。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    • 2018-06-29
    相关资源
    最近更新 更多