【问题标题】:How to implement class diagram in java code [closed]如何在java代码中实现类图[关闭]
【发布时间】:2021-02-14 16:54:17
【问题描述】:

我是初学者,正在尝试通过在线学习材料来学习。我只是画了一张图,想给你看,以便你把我引向正确的道路。

问题 1:绘制正确吗
问题 2:如何在 Java 代码中实现此图

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

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

最好的问候

【问题讨论】:

  • 1) 如果你不告诉我们它应该代表什么,我们怎么知道它是否正确? 2)先自己写一些代码是有利的
  • @Lino 我编辑了我的问题并添加了确切的内容。请给我关于类图的建议,如果它是正确的,那么我可以尝试一些代码

标签: java uml implementation class-diagram


【解决方案1】:

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

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

事实上这是相反的,子类继承了被继承类的公共/保护方法。


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

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


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

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

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


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

【讨论】:

  • 感谢您的指导。 In fact this is in the reverse direction, the child classes inherits the public/protected methods of the inherited class(es). 请纠正我如何将 SiteTemplate 设为抽象并访问其所有子类或子类方法
  • @Java_Beginneryes SIteTemplate 可以是抽象的(解释为什么 Template
  • 对不起我的英语不好。我假设模板是整个网站的图形或 HTML 设计。
  • @Java_Beginner 我编辑了我的答案,请刷新它。没关系,我的英语也不完美;-)
  • 请告知我如何访问例如来自主 SiteTemplate 类的表类?感谢您通过添加聚合和继承使类图更好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多