如何在java代码中实现类图

问题描述

我是初学者,正在尝试通过在线学习材料来学习。我只是画了个图,想给你看,让你把我放在正确的道路上。

Here is Class Diagram

问题 1:是否正确绘制
问题 2:如何将此图实现到 Java 代码

尝试构建具有 3 个子类的 SiteTemplate,例如(1) 不同的元素,如模式、按钮、组合框、表格等 (2) Java Script 元素,如错误检查器和消息 (3) 将在项目中使用的所有 URL,以便如果站点从一台服务器移动到另一台服务器,我们只需更改网址即可重新开始工作

如果我继承了 SiteTemplate 类,那么我正在尝试这样做,然后可以访问子类及其子类的所有方法

最好的问候

解决方法

如果我继承了 SiteTemplate 类,则可以访问子类及其子类的所有方法

不,SiteTemplate 被其他类直接或间接继承的事实不允许 SiteTemplate 访问这些类的方法。

实际上这是相反的,子类继承了被继承类的public/protected方法。


如果 SiteTemplate 对应于站点的一个元素,您的概括是正确的,但我上面所说的仍然适用。也可能 SiteTemplate 是一个接口,在这种情况下,泛化是实现。在 Java 中,您使用 extends 进行概括,或者使用 implements 进行实现。

SiteTemplate 默认情况下不知道继承/实现它的类,以使其明确知道它们是一个糟糕的架构。


如果你想说一个 SiteTemplate 由任意数量的 ProjectURLJSElementHTMLElement 组成概括是错误的,您可以使用聚合(甚至组合):

enter image description here

允许 SiteTemplate 访问组成它的元素,然后将它们的类定义的公共操作应用于这些实例。

在 Java 中,它们是属性,并且因为实例的数量未知,所以您使用集合。


警告,不要用复数命名类,所以 ProjectURL 等等,不管这些类有几个实例,这就是为什么在我的回答中我不使用复数

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...