类可见性是对象设计的重要组成部分。我还没有看到任何示例图在多个UML书籍中显示非公共类,也没有看到在Enterprise Architect中显示类可见性的方法以及其他工具。 Enterprise Architect和其他工具允许您在元模型中设置类的可见性,但我还没有看到在图表中显示的方法。可以在UML类图上显示类的可见性吗?
回答
在Eclipse中,您可以看到图标。我的意思是你有一个绿色的班级图标,如果是私人的,那么一个p就放在最上面。 如果选择该选项,该图标在类图中也可见。 希望得到这个帮助。
UML支持以编程语言无关的方式提供可见性,无论是在元模型还是代表中。
有一个名为VisibilityKind的枚举在各个地方使用(请参阅UML 2.3 superstructure spec第7.3.5.5节p142)。
在类图上有多种方式来说明可见性。最常见的是用' - '代表私人特征,用'+'代表公开。例如:关于多个示例the spec P52
----------------------------
| Class |
|--------------------------|
| +publicAttribute: Type |
| -privateAttribute: Type |
|--------------------------|
| +publicMethod() |
| -privateMethod() |
----------------------------
参见图7.28/7.29。
hth。
你的答案属于类成员可见性,而不是类本身的可见性。 –
@BjörnPollex可视性与某个范围有关,没有范围可视性没有意义。类实例可以是另一个类实例的成员,在这种情况下,它的可见性可以像在这个答案中看到的一样。 – SomeWittyUsername
我只是看着它在UML 2.4.1基础设施。在图10.3页。 95你看到类被定义为一个类型,它是一个元素的NamedElement。使用可见性包,NamedElement具有第9.21.1页中定义的可见性。 88,如果它属于一个命名空间。所以如果你有可见性,Class就具有可见性。您可以使用+ - #和〜(第89页)的常用符号。
VisualParadigm可以做到这一点。
按照UML规范2.5版的β2不仅NamedElement而且PackageableElement具有类型的属性能见度VisibilityKind
从P48:
PackageableElement [抽象类]
.. [剪断] ..
属性
- visibility:VisibilityKind [0..1] = public如果一个PackageableElement由一个名称空间拥有,则它必须具有指定的可见性。默认可见度是公开的。
约束
- namespace_needs_visibility 一个PackageableElement一个命名空间拥有一定要有知名度。 INV:知名度= null表示命名空间= NULL
我还没有找到这种可见的任何符号指引然而
如果你有成见定义的类(比如< <类> >)然后可以将形状脚本分配给原型。如果您只指定的装饰,这应该使用默认绘制的一类,并添加装饰,它可以基于类的作用域属性是有条件的:
decoration X
{
if(hasproperty("scope","public"))
print("P");
}
这将打印在P的顶公共课的左角。但是,您可以同样有一个图标。
不幸的是,我找不到一种将形状脚本分配给默认的非定型类的方法。任何人都知道如何做到这一点?
- 1. 子类可以影响虚拟方法的可见性吗?
- 2. 可以做一些关于“Item”反射类的可见性吗?
- 3. 可以在UML类图中使用双向依赖关系吗?
- 4. 我可以在UML类图中写评论吗?
- 5. IntelliJ UML字段可见性
- 6. UML默认可见性
- 7. 我可以在枚举上使用gcc可见性属性吗?
- 8. 我们可以显示不同类型的地图视图吗?
- 9. 类定义的可见性
- 10. getDefinitionByName()和类的可见性
- 11. OSGi超类的可见性
- 12. 如何在UML图中显示此类?
- 13. 父类中类变量的可见性
- 14. 子类对父类定义的属性是可见的吗?
- 15. 如何在VisualStudio的UML类图中显示(反映)“属性”? (C#)
- 16. UML域模型字段的可见性
- 17. 类图属性可见性。公共属性可以有getter和setter操作?
- 18. UML类图中的可选参数
- 19. 我可以使用Protobuf-net控制生成的类的可见性吗?
- 20. Python类的属性可以相加吗?
- 21. 类的属性可以是数组吗?
- 22. 绑定的DataTemplate父项的可见性(可见性或可见性),以在ViewModel
- 23. 抽象类中的属性可见性
- 24. 降低基类属性的可见性
- 25. UML序列图显示创建子类?
- 26. 按类名显示/隐藏可见性不是ById
- 27. 在LWJGL中设置显示可见性
- 28. 在画布上设置DrawingVisual的可见性(可见,不可见)
- 29. PopupWindow上的View可以显示PopupMenu吗?
- 30. 在开始Java基础类之前,我可以从UML类开始吗?
我不认为UML标准提供了可见性的具体表示法,因为它是一种语言相关的功能。 – Heisenbug
谢谢@Heisenbug。我能够看到Enterprise Architect软件包图上的类可见性。这可能是在此特定工具中查看它的唯一方法。我的下一步是回顾UML规范的相关部分。 –
我相当肯定的是,一个包图实际上是在Enterprise Architect中查看元素可见性(即范围)的唯一方法。因为您已经做过侦探工作,所以我不会将其作为答案发布,但请您自己考虑这样做(并且将回答的问题标记为未来的搜索者)。 – Uffe