一个VS多个对象 - Java或任何其他OOP

use*_*866 2 java oop object

假设我需要为一系列书籍设计一个系统.我们假设我有数百万本书,为简单起见,我们不需要在系统中添加或删除书籍.

我可以创建一个Book类并以集合的大小启动一个数组:

Book book = new Book[number of books];
Run Code Online (Sandbox Code Playgroud)

在这种情况下,Book将包括以下字段:

long bookIsbn
String bookTitle 
Run Code Online (Sandbox Code Playgroud)

或者,只启动一个对象:

Book book = new Book();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,Book类需要包含数组/列表/映射等,其中包含有关整个集合的信息.例如:

Map<Integer, String> isbnToTitle = new Map<Integer, String>();
Run Code Online (Sandbox Code Playgroud)

哪种表示更有效?或者可能重新解释这个被认为是更好的OOP方法的问题?

谢谢!

Fel*_*ing 12

考虑OOP:考虑一本书什么以及它具有哪些属性.一本书肯定不了解其他书籍,所以第二种方法不是要走的路.

数组......好吧,如果它已经足够了.
最好的事情(从模型的角度来看)是创建一个类Book和一个类,例如Library管理所有书籍.然后最后一个类包含所有书籍的列表,并提供所有书籍的操作.