问题描述
我是初学者,正在尝试通过在线学习材料来学习。我只是画了个图,想给你看,让你把我放在正确的道路上。
问题 1:是否正确绘制
问题 2:如何将此图实现到 Java 代码中
尝试构建具有 3 个子类的 SiteTemplate,例如(1) 不同的元素,如模式、按钮、组合框、表格等 (2) Java Script 元素,如错误检查器和消息 (3) 将在项目中使用的所有 URL,以便如果站点从一台服务器移动到另一台服务器,我们只需更改网址即可重新开始工作
如果我继承了 SiteTemplate 类,那么我正在尝试这样做,然后可以访问子类及其子类的所有方法
最好的问候
解决方法
如果我继承了 SiteTemplate 类,则可以访问子类及其子类的所有方法
不,SiteTemplate 被其他类直接或间接继承的事实不允许 SiteTemplate 访问这些类的方法。
实际上这是相反的,子类继承了被继承类的public/protected方法。
如果 SiteTemplate 对应于站点的一个元素,您的概括是正确的,但我上面所说的仍然适用。也可能 SiteTemplate 是一个接口,在这种情况下,泛化是实现。在 Java 中,您使用 extends 进行概括,或者使用 implements 进行实现。
SiteTemplate 默认情况下不知道继承/实现它的类,以使其明确知道它们是一个糟糕的架构。
如果你想说一个 SiteTemplate 由任意数量的 ProjectURL 和 JSElement 和 HTMLElement 组成概括是错误的,您可以使用聚合(甚至组合):
允许 SiteTemplate 访问组成它的元素,然后将它们的类定义的公共操作应用于这些实例。
在 Java 中,它们是属性,并且因为实例的数量未知,所以您使用集合。
警告,不要用复数命名类,所以 ProjectURL 等等,不管这些类有几个实例,这就是为什么在我的回答中我不使用复数