【发布时间】:2014-11-18 06:14:23
【问题描述】:
我需要开发一个包含多种库类型的库的列表。例如,库可以是视频库或照片库。如果相关,我想使用 JavaFX 遵循 MVC 设计模式。请参阅下面的 UML 图参考我的问题:
图一
所以我想在我的库模型中为列表使用泛型类型,如下所示:
public class LibraryModel<T> {
private List<T> aList;
}
但是,这不起作用,因为当我实例化库列表时,我需要指定一个类型。所以通过这种方式,我只能将照片或视频库指定为列表,不能同时指定两者。
我试图引入一个名为“Library”的泛型类型,它将被列在列表中(作为超类),由 PhotoController/VideoController 扩展:
图 2
public class LibraryModel {
private List<Library> aList;
}
在图 2 中,我可以创建一个通用库列表。但这将如何影响我执行特定照片/视频任务的能力?假设我有以下方法:
超类方法:
displayAll()
add()
remove()
图片库方法:
displaySlideShow()
视频库方法:
playVideo()
通过将库存储为超类,我将如何调用其他库类型的特定方法?这合法吗?
请放轻松,我还在学习 Java,提前谢谢。
【问题讨论】:
-
你想实现visitor pattern。
标签: java list model-view-controller javafx uml