我应该在类图中包含 getters 和 setters 吗?
2022-09-01 19:10:08
我需要为我的 JSF 应用程序绘制一个类图,用于项目文档。因此,我有很多类作为托管bean,具有许多属性,因此有许多getter和setter。
当我绘制类图时,我是否也应该在图中包含 getters 和 setters,或者我可以简单地离开它们吗?
我需要为我的 JSF 应用程序绘制一个类图,用于项目文档。因此,我有很多类作为托管bean,具有许多属性,因此有许多getter和setter。
当我绘制类图时,我是否也应该在图中包含 getters 和 setters,或者我可以简单地离开它们吗?
将它们包括在内是不合适的。您可以添加一行表示访问器方法
包括 getter 和 setter 将是一个坏主意。他们正在浪费“不动产”来复制已在类的属性/属性部分中显示的信息。
其他答案表明,UML 图需要记录 Java getter 和 setter 的“不寻常”可见性,或者 getter 和 setter 中的“特殊”行为。
我想在某些情况下,这可能是合理的。但是,我会反驳这一点:
UML 图不需要显示所有内容。只有重要的事情。事实上,一个好的UML图的标志之一是它不会被不重要的东西弄得一团糟。因此,只有当这些细节真的很重要时,才应该包括它们。
抽象边界的精细细节通常不是设计所关心的。Java程序员应该只知道如何在需要时实现抽象/封装的基础知识。此外,程序员很可能会更好地了解需要“多孔”抽象边界的情况;例如,出于性能原因。(UML不是为了表达这种东西而设计的。
字段和方法的精确行为通常不是 UML 设计文档所关心的。(除非设计者还要在OCL中指定方法的前提条件,后置条件和不变量!但是,如果 UML 图需要说字段永远不可能是 ,或者获取字段会增加计数器,则应该能够将其描述为字段上的注释(或 OCL 约束)。null
最后,UML 图不应是软件的唯一技术文档。javadocs自动记录访问修饰符/方法和字段的可见性。同样,如果程序员已经实现了具有需要记录的“特殊”行为的 getter 和 setter,则应在 javadoc 注释中对此进行描述。