Welcome 微信登录

首页 / 脚本样式 / JavaScript / JS实现简单的图书馆享元模式实例

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