JS实现简单的图书馆享元模式实例
本文实例讲述了JS实现简单的图书馆享元模式。分享给大家供大家参考。具体如下:
<!DOCTYPEhtml> <html> <head> <title>享员模式</title> </head> <body> <script> /* *flyweight享员模式 */ //例子是一个图书馆存书借书->_-> varBook=function(id,title,author,genre,pageCount,publisherId,ISBN,checkoutDate,checkoutMember/*还有一些*/){ this.id=id; this.title=title; this.author=author; this.genre=this.genre; this.pageCount=pageCount; this.publisherId=publisherId; this.ISBN=ISBN; /*...*/ this.checkoutDate=checkoutDate; this.checkoutMember=checkoutMember; }; Book.prototype={ getTitle:function(){ returnthis.title; }, getAuthor:function(){ returnthis.author; }, getISBN:function(){ returnthis.ISBN; }, /*__more.._*/ updateCheckoutStatus:function(booId,checkoutDate,checkoutMember){ this.id=bookId; this.checkoutDate=checkoutDate; this.checkoutMember=checkoutMember; /*_more.._*/ } }; //下面介绍享元的版本;PS(使用了一个OBJ存书籍,这样就可以存多的书) varBookFactory=(function(){ varexistingBooks={},existingBook; return{ createBook:function(title,author,genre,ISBN){ existingBook=existingBooks[ISBN]; if(existingBook){ returnexistingBook; }else{ varbook=newBook(/*_moreData_bookInfo==_*/) returnexistingBooks[ISBN]=book; } } } })(); varBookRecordManager=(function(){ varbookRecordDatabase={}; return{ addBookRecord:function(id,ISNB/*==*/){ varbook=BookFactory.createBook(/**/); bookRecordDatabase[id]={ checkoutDate:checkoutDate, checkoutMember:checkoutMember }; }, updateCheckoutStatus:function(bookId,xx){ bookRecordDatabase[bookId]={ xx:tt, oo:yy } }, extend:function(){ /*自定义各种公用方法了*/ } } })(); </script> </body> </html>
希望本文所述对大家的javascript程序设计有所帮助。