public class Book {
private long ID;
private String details;
private static Set books;
public Book(long iD, String details) { ... }
public static void addBook(long iD, String details){....}
public void update() { }
public static void delete(Book b) { books.remove(b); }
public static Book find(long id){....}
};
public class User {
private long ID;
private String details;
private int accountType;
private static Set users;
public Book searchLibrary(long id) { return Book.find(id); }
public void renewMembership() { ... }
public static User find(long ID) {....}
public static void addUser(long ID, String details,int accountType) {
users.add(new User(ID, details, accountType));
}
public User(long iD, String details, int accountType) { ... }
}
public class OnlineReaderSystem {
private Book b;
private User u;
public OnlineReaderSystem(Book b, User u) { ... }
public void listenRequest() { }
public Book searchBook(long ID) { return Book.find(ID); }
public User searchUser(long ID){ return User.find(ID); }
public void display() { }
}
这是为设计在线图书阅读器的数据结构问题找到的标准解决方案。我的问题是为什么我们需要在图书类中声明静态数据成员(私有静态集合图书)图书(用户类中的静态成员也是如此)。这种方法的优点是什么?(删除了一些函数定义,这样我们就可以避免与 Java/C++/C# 相关的答案,我只希望静态变量在所有这些面向对象的语言中都可用)