从 UML class 图到 Java:class 层次结构选择
From UML class diagram to Java : class hierarchy choices
我正在尝试在 Java 中实现它,但我遇到了一些接口/继承问题。我对 OO 概念很陌生,所以这可能是架构选择/概念误解。如果缺少某些信息,请告诉我,我会尽量让自己更清楚。
交换机可以是 OSIL 2 或 3 设备,所以我假设我需要继承接口,因为一次只能在 superclass 上运行,对吗?
问题:我不能使 Node 成为一个接口,因为我需要它的属性,如果它不是一个接口,OSIL3Equipement(作为一个接口)就不能从它继承。
问题:我如何在 Java 中对此建模(也就是我的 class 层次结构中的错误在哪里?)
(斜体写成 class names 表示其摘要,可能是约定俗成,但我更愿意指出)
所以问题的一部分是交换机试图同时做两件不同的事情。是否可以分别对它们进行建模? OSIL 2 开关和 OSIL3 开关。 (可能使用 switch 作为接口,两者都在其 OSIL 设备基础之上实现 class)
如果它需要是单个对象,可以解决 java 缺少多重继承的问题,方法是将其中一个抽象 classes 变成一个接口,并让每个实现它定义了自己的数据结构。即:OSIL2Equipment 是一个带有 getARPTable() 或 doARPTableLookup() 的接口方法,而 Switch class 只会将其定义为私有字段。
我正在尝试在 Java 中实现它,但我遇到了一些接口/继承问题。我对 OO 概念很陌生,所以这可能是架构选择/概念误解。如果缺少某些信息,请告诉我,我会尽量让自己更清楚。
交换机可以是 OSIL 2 或 3 设备,所以我假设我需要继承接口,因为一次只能在 superclass 上运行,对吗? 问题:我不能使 Node 成为一个接口,因为我需要它的属性,如果它不是一个接口,OSIL3Equipement(作为一个接口)就不能从它继承。 问题:我如何在 Java 中对此建模(也就是我的 class 层次结构中的错误在哪里?) (斜体写成 class names 表示其摘要,可能是约定俗成,但我更愿意指出)
所以问题的一部分是交换机试图同时做两件不同的事情。是否可以分别对它们进行建模? OSIL 2 开关和 OSIL3 开关。 (可能使用 switch 作为接口,两者都在其 OSIL 设备基础之上实现 class)
如果它需要是单个对象,可以解决 java 缺少多重继承的问题,方法是将其中一个抽象 classes 变成一个接口,并让每个实现它定义了自己的数据结构。即:OSIL2Equipment 是一个带有 getARPTable() 或 doARPTableLookup() 的接口方法,而 Switch class 只会将其定义为私有字段。