Java程序设计题

标签 java oop

我正在尝试根据要创建的类提出一种组织某些对象的简单方法。假设我正在尝试跟踪书籍。一本书可以属于许多不同的流派和子流派。我希望能够将一本书识别为一本书,但又将其归入这些不同的类别。我有一个跟踪所有子流派的流派类,还有一个包含所有书籍的子流派类。我想让这本书知道它所属的所有类型和子类型。我还想跟踪一些基于类型和子类型的统计数据(评论、评论、阅读次数等),然后能够汇总它们以获得整本书的数字。通过这种方式,用户可以选择一本书并了解该书所属的每个流派/子流派,以及关于该书的每个类别的统计信息

关于如何设计它有哪些想法?

我的想法是让每本书都定义一个名为 BookGroup 的类,BookGroup 将包含流派和子流派,以及该类别的任何相关信息(假设子流派只能属于一种流派)。然后在 Book 类中,我将保留该书所属的一组书组。我可以将所有不同书组的统计数据相加。我唯一不喜欢的是我觉得 BookGroup 应该包含 Books,而不是相反。

还有其他想法吗?

谢谢!

编辑: 你们都给了很好的建议。我想出于简单的原因,我现在可能会做这样的事情:

class Book
{
     Genre myGenre;
     SubGenre mySubGenre;
     String myTitle;
}

class Library
{
     Map<String,Set<Book>> allBooks = new HashMap<String,Set<Book>>();
     //where allBooks contains a mapping from book title, to all of the book objects which actually represent the same book but may contain different information related to their specific genre/subgenre
}

最佳答案

我想你会希望你的类看起来像这样:

public class Book  
{  
String name;  
List<Review> reviews;  
Set<Genre> genres;  
public Book(String name, Set<Genre> genres){}  
}

  public class Genre  
{  
String name;  
Set<Book> books;  
public Genre(String name, Set<Book> books){}  
}  

我在这里假设您将使用数据库,反过来您将有一个 DAO 来查询所有符合条件的已知书籍,然后对数据集执行 CRUD 操作。我觉得建议 Genre 构造函数采用一组 Book 对象有点不对劲,但目前我想不出另一种方法来做到这一点。

关于Java程序设计题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4147269/

相关文章:

java - Hibernate 左连接返回对象

java - 列表文档中的混淆点

ruby - 我可以在 Ruby 中创建一个方法范围的常量吗?

matlab - 如何以编程方式在方法的开头放置断点?

language-agnostic - HTML解析类的构造函数应该做多少工作?

java - 您已在存储库中定义查询方法,但未定义任何查询查找策略。 Spring

java - 以编程方式获取 ScrollView 的子级

c# - 如果 child 不知道,如何将依赖项注入(inject)基类?

java - 这是做我正在尝试的事情的正确方法吗?抽象静态变量?

java - FFmpeg 从视频中提取 MP3 时出错