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

 更新时间:2015年06月30日 12:13:44   作者:方方和圆圆  
这篇文章主要介绍了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程序设计有所帮助。

相关文章

  • JavaScript的DOM与BOM的区别与用法详解

    JavaScript的DOM与BOM的区别与用法详解

    这篇文章主要为大家详细介绍了JavaScript的DOM与BOM的区别与用法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • javascript表单正则应用

    javascript表单正则应用

    这篇文章主要为大家详细介绍了javascript表单正则应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 微信小程序计算器实现案例详解

    微信小程序计算器实现案例详解

    最近继续玩一些微信小程序的api来做例子,感觉自己可能创造力不很足,只能模仿着别人的例子来做一个自己的计算器了,下面这篇文章主要给大家介绍了关于微信小程序计算器实现案例的相关资料,需要的朋友可以参考下
    2023-06-06
  • 深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!

    深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!

    写这篇文章的目的是经常看到开发人员说:把字符串转化为JSON对象,把JSON对象转化成字符串等类似的话题,所以把之前收藏的一篇老外的文章整理翻译了一下,供大家讨论,如有错误,请大家指出,多谢
    2012-01-01
  • js中的内部属性与delete操作符介绍

    js中的内部属性与delete操作符介绍

    这篇文章主要介绍了js中的内部属性与delete操作符的相关资料,需要的朋友可以参考下
    2015-08-08
  • JS动态设置页面高度的操作代码

    JS动态设置页面高度的操作代码

    这篇文章主要介绍了JS动态设置页面高度的操作代码,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • js实现获取两个日期之间所有日期的方法

    js实现获取两个日期之间所有日期的方法

    这篇文章主要介绍了js实现获取两个日期之间所有日期的方法,涉及javascript针对日期与时间的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • 基于JS实现限时抢购倒计时间表代码

    基于JS实现限时抢购倒计时间表代码

    本文给大家分享一段简单的代码基于js实现限时抢购倒计时间表功能,非常不错,代码简单易懂,需要的的朋友参考下吧
    2017-05-05
  • javascript显示系统当前时间代码

    javascript显示系统当前时间代码

    这篇文章主要为大家详细介绍了javascript如何显示系统当前时间代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 动态调用CSS文件的JS代码

    动态调用CSS文件的JS代码

    动态调用CSS文件,一般用于页面的多种颜色选择,通过调用不同的css实现不用的页面颜色效果。
    2010-07-07

最新评论