我正在尝试用Java实现它,我面临一些接口/继承问题。我对OO概念很陌生,所以这很可能是一个架构选择/概念误解。如果缺少某些信息,请告诉我,我会尽量让自己更清楚。
交换机可以是OSIL 2或3设备,所以我假设我需要继承接口,因为一个人只能同时拥有超类,对吧? 问题:我不能使Node成为接口,因为我需要它的属性,如果它不是接口,OSIL3Equipement(作为接口)不能继承它。 问题:如何在Java中建模(又如我的类层次结构中的错误?) (斜体写的类名意味着它的摘要,可能是一种惯例,但我更愿意指出它)
答案 0 :(得分:0)
问题的一部分是交换机试图同时做两件事。是否可以单独建模? OSIL 2交换机和OSIL3交换机。 (可能将switch作为接口,两者都在其OSIL Equipment基类之上实现)
如果它需要是单个对象,可以通过将其中一个abtract类转换为接口来解决java缺少多重继承问题,并让它的每个实现都定义自己的数据结构。 ie:OSIL2Equipment是一个带有getARPTable()或doARPTableLookup()的接口方法,而Switch类只是将它定义为私有字段。