javaScript中的对象作为模型

javaScript中的对象作为模型,javascript,Javascript,对不起,如果我的问题真的很琐碎,我只是想澄清一下。 假设我有图书馆课和图书课。 例如,我有一些书,它们都存放在这个图书馆里。 我的问题如下: 我是否应该使用Library类作为模型将我的books对象保存在那里? 像这样: class Library { static addBook(book){ this.books.push(book); } static getBooksList() { return this.books;

对不起,如果我的问题真的很琐碎,我只是想澄清一下。 假设我有图书馆课和图书课。 例如,我有一些书,它们都存放在这个图书馆里。 我的问题如下: 我是否应该使用Library类作为模型将我的books对象保存在那里? 像这样:

class Library {
    static addBook(book){
        this.books.push(book);
    }

    static getBooksList() {
        return this.books;
    }
}

或者最好先创建库的抽象类,然后创建对象并将此对象用作存储?(模型)

最灵活的方法是不要假设只有一个库,即使它可能与您当前的需求类似

因此,我不会在库类上使用静态方法,而是使用库实例。这样它就更好地代表了现实生活——一本书有一天在a图书馆,另一天在B图书馆

类库{
建造师(姓名){
this.name=名称;
this.books=[];//实例化books数组。
}
地址簿{
这个。书。推(书);
//如果一本书只能放在一个图书馆里,需要额外处理
if(book.library)book.library.removeBook(book);
book.library=这个;
}
移除书(书){
设i=this.books.indexOf(book);
如果(i==-1)返回;
本.书.拼接(i,1);
book.library=null;
}
getBooksList(){
归还这本书;
}
}
课堂用书{
构造函数(标题、作者){
this.title=标题;
this.author=作者;
this.library=null;
}
}
康斯特图书=新书(“1984”,“乔治·奥威尔”);
康斯特图书馆=新图书馆(“伦敦图书馆”);
图书馆。addBook(图书);
log(“书”+book.title+”在“+book.library.name”中);
const otherLibrary=新图书馆(“伯明翰图书馆”);
其他图书馆。添加图书(图书);

log(“书”+book.title+”在“+book.library.name”中)最灵活的方法是不要假设只有一个库,即使它可能与您当前的需求类似

因此,我不会在库类上使用静态方法,而是使用库实例。这样它就更好地代表了现实生活——一本书有一天在a图书馆,另一天在B图书馆

类库{
建造师(姓名){
this.name=名称;
this.books=[];//实例化books数组。
}
地址簿{
这个。书。推(书);
//如果一本书只能放在一个图书馆里,需要额外处理
if(book.library)book.library.removeBook(book);
book.library=这个;
}
移除书(书){
设i=this.books.indexOf(book);
如果(i==-1)返回;
本.书.拼接(i,1);
book.library=null;
}
getBooksList(){
归还这本书;
}
}
课堂用书{
构造函数(标题、作者){
this.title=标题;
this.author=作者;
this.library=null;
}
}
康斯特图书=新书(“1984”,“乔治·奥威尔”);
康斯特图书馆=新图书馆(“伦敦图书馆”);
图书馆。addBook(图书);
log(“书”+book.title+”在“+book.library.name”中);
const otherLibrary=新图书馆(“伯明翰图书馆”);
其他图书馆。添加图书(图书);

log(“书”+book.title+”在“+book.library.name”中)此处提供的代码只允许您拥有一个库。是这样吗?是的。可能更好的解决方案是将它作为类,然后使用库类的对象,因为它将提供更大的灵活性。我说得对吗?如果从逻辑上考虑,可能有许多库(对象)。然而,在我的例子中,库只是一个图书对象的存储。事实上,我刚刚发布了一个带有该建议的答案。这里提供的代码只允许您拥有一个库。是这样吗?是的。可能更好的解决方案是将它作为类,然后使用库类的对象,因为它将提供更大的灵活性。我说得对吗?如果从逻辑上考虑,可能有许多库(对象)。然而,在我的例子中,库只是一个图书对象的存储。事实上,我刚刚发布了一个带有该建议的答案。对不起,我如何实例化一个空图书数组?如果我只是在我的图书馆课上做这件事,我会犯一个错误;在其构造函数中添加一行。我刚刚添加了它。对不起,我如何实例化一个空的books数组?如果我只是在我的图书馆课上做这件事,我会犯一个错误;在其构造函数中添加一行。我现在才加上。