在UML类图中表示或暗示getter和setter的快捷方式

在UML类图中表示或暗示getter和setter的快捷方式,uml,getter-setter,class-diagram,specifications,Uml,Getter Setter,Class Diagram,Specifications,在UML类图中,如果一个类有5个需要可变和可读的私有属性,那么即使没有任何类的有趣功能,UML也会变得非常丑陋,有10个get/set方法: 撇开丑陋不谈,我觉得UML应该关注类的更有趣的功能。我说得对吗 是否有一些标准的快捷方式来表示或暗示私有属性的getter和setter UML没有定义getter setter操作。在编程语言中使用Get和Set方法实现属性定义。例如,readonly属性将仅在实现代码中具有getter方法。若属性定义为“计算”,则代码中通常使用getter方法来实现

在UML类图中,如果一个类有5个需要可变和可读的私有属性,那么即使没有任何类的有趣功能,UML也会变得非常丑陋,有10个get/set方法:

撇开丑陋不谈,我觉得UML应该关注类的更有趣的功能。我说得对吗


是否有一些标准的快捷方式来表示或暗示私有属性的getter和setter

UML没有定义getter setter操作。在编程语言中使用Get和Set方法实现属性定义。例如,readonly属性将仅在实现代码中具有getter方法。若属性定义为“计算”,则代码中通常使用getter方法来实现计算,而setter可以省略,因为计算的属性通常是只读的。属性的可见性通常也会转移到代码中getter和setter方法的可见性。
在代码中为读写和未计算定义的属性定义geter和setter方法是没有意义的

你是对的:没有必要在类模型中包含标准制定者和获取者的“样板”签名。不幸的是,UML并没有定义一个标准符号来表示私有属性的getter和setter。所以,你必须使用你自己的惯例。例如,您可以将一个一般性解释(所有私有属性都有getter和setter,而私有只读属性只有getter)作为UML注释,显示为一个右上角弯曲的矩形(也称为“注释符号”)附在图表上

如果您希望使相关属性的getter/setter约定更加明确,则创建您自己的原型(例如,«get/set»和«get»),用于对这些私有属性进行分类,如下图所示:


我还使用它来描述/记录ECMAScript 6类的隐式getter和setter。

如果您不想对不感兴趣的功能建模,那么您可以完全去掉getter和setter,并将属性建模为简单属性。仅填充上部属性隔室,并将操作隔室留空。在某些语言中(例如
C#
Delphi
),getter/setter对程序员来说几乎是不可见的。我觉得您不应该将任何责任转移给UML(“对象管理组(OMG)是一个非营利的技术标准联盟…”),而应该将责任集中在您这边的键盘上。我说的对吗?好主意,这应该是UML3.0的一部分(?):好主意,仍然认为可以通过为
readable
mutable
商定一个更简单的符号或符号来改进它。这是非常明确和可读的,但对我来说有点冗长