我在 java 中使用一个与 PureData 通信的接口。为此,我的类必须扩展给定的类MaxObject
。在设计我的类(一个循环缓冲区)时,我发现我需要扩展 java 的Iterator
类。所以我必须同时扩展两个类。
我的猜测是,唯一的解决方案是创建两个不同的类,并让其中一个成为另一个的组件。但是,这是唯一的解决方案吗?它是最好的吗?
此外,每当我发现自己需要从两个类继承时,是不是因为设计不好?有解决这个类的设计模式吗?
谢谢
Iterator
不是一个类,它是一个接口。因此,您不扩展它,而是实现它。你可以实现任意数量的接口——唯一的限制是你只能扩展一个类。
在你的情况下:
class MyClass extends MaxObject implements Iterator<Type>
编辑:我应该仔细阅读正在扩展的内容。EboMike 是对的,你不需要扩展 Iterator 类。
听起来像 DDofD:http: //javacodeonline.blogspot.com/2009/08/deadly-diamond-of-death.html
Iterator
是一个接口。从理论的角度来看,扩展 MaxObject 和实现Iterator
.
由于缺乏信息,我不能说这样做是否是个好主意,但我有一种不好的感觉。