具有多个具有相同组件的屏幕时的 Swing 和 UML class 图

Swing and UML class diagram when having several screens with identical components

我坚持了好几个小时。 我应该为大学项目中的 Swing 应用制作 UML class 图。我设想了一个主屏幕,根据所选选项,我可以从中打开多个屏幕之一。所有这些屏幕都有几个相同的组件(如应用程序徽标、注销按钮等)。

现在,我读到不建议继承 JFrame,所以我避免将它们放在继承 JFrame 的 class 中,而 JFrame 又被其他 classes 继承,但不知何故它也确实如此没有继承似乎不好,而是将这些组件列为每个 class.

中的属性

那么,正确的做法是什么?

任何不同的屏幕通常被视为 class。其中包含具体数据的屏幕是 class 的一个实例。

屏幕的任何一种子元素显然都是另一个 class。同样,其带日期的范例是一个实例。

屏幕 class 具有不同 class 的子元素。它们确实是属性,改变自然逻辑将是非常不愉快的想法。

如果屏幕具有相同的元素而仅在内容上有所不同,并且这是概念上的事实,如果它们必须相同,则这些屏幕属于相同的 class。如果它们只是偶然如此相似,并且进一步开发可以改变它,它们应该属于不同的class。

继承也可以很方便的使用。如果你有黄色按钮和带点的黄色按钮,后者可能是前者的后代。在这里,Liskov 原则不会被打破。不要忘记,SOLID 中设置了基本原则,没有不使用继承的原则,也不需要纯粹出于时尚而使用组合。