45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:JS实现图书馆享元模式的实例代码分享

JS实现图书馆享元模式的实例代码分享

2015-07-22 19:45:56 来源:www.45fan.com 【

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程序设计有所帮助。


本文地址:http://www.45fan.com/bcdm/15349.html
Tags: 实现 图书馆 简单
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部