我开始设计一个应用程序来跟踪书籍文件。我希望能够分别存储平装本、精装本、音频、epub 和 kindle 书籍的信息。尽管我需要存储的信息存在一些细微的差异,但这些不同类型的书籍有很多共同点。
我认为最好将公共(public)属性保留在抽象 Book 类中,然后创建从该类继承的平装本、精装本等子类。我知道在 MVC 框架(例如 PlayFramework)中,您的模型将从基 Model 类继承。自大学以来,我查看并阅读了许多不同的 MVC 框架,看起来很多 MVC 框架都采用这种方法。由于许多语言不支持多重继承,因此我无法让我的模型从抽象 Book 类和许多 MVC 框架附带的框架基 Model 类继承。
如何解决这个问题?我的大部分经验都是使用 Java 以及一些 Ruby。我更喜欢使用一些 Java MVC 框架(Play、Spring、Grails)或 Rails。
我可以让 Book 扩展模型,然后让所有子类扩展 book 吗? Book 不再是一个抽象类,而是一个从未实际使用过的模型。 例如。
Public Class Book extends Model
{
//I would put common functionality here
}
//This would be one of the subclasses that I want to be able to inherit from book
Public Class PaperbackBook extends Book
{
//put the code specific to paperback book in here
}
在我的 Controller 中,我只会调用 PaperbackBook、HardbackBook 等。
最佳答案
恕我直言,让Book
扩展Model
。多田。
为了回答您的更新,是的,Book
扩展了 Model
,并且所有其他书籍类型都扩展了 Book
。并且,Book
仍然可以是抽象的。没有任何规定说扩展另一个类的类不能是抽象的。
关于java - 如何使用抽象类来简化 MVC 框架中的模型创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25207834/