首页 > 编程 > JavaScript > 正文

JS实现简单的图书馆享元模式实例

2019-11-20 12:07:56
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表