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


Posted in Javascript onJune 30, 2015

本文实例讲述了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 相关文章推荐
有趣的JavaScript数组长度问题代码说明
Jan 20 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
Aug 02 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
Apr 20 Javascript
jQuery实现查找最近父节点的方法
Jun 23 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
Jun 26 Javascript
官方推荐react-navigation的具体使用详解
May 08 Javascript
js动态设置select下拉菜单的默认选中项实例
Aug 21 Javascript
浅谈express.js框架中间件(middleware)
Apr 07 Javascript
JavaScript函数重载操作实例浅析
May 02 Javascript
node koa2 ssr项目搭建的方法步骤
Dec 11 Javascript
js属性对象的hasOwnProperty方法的使用
Feb 05 Javascript
JS建造者模式基本用法实例分析
Jun 30 #Javascript
JS模式之简单的订阅者和发布者模式完整实例
Jun 30 #Javascript
JS模式之单例模式基本用法
Jun 30 #Javascript
js简单工厂模式用法实例
Jun 30 #Javascript
JavaScript判断undefined类型的正确方法
Jun 30 #Javascript
超赞的动手创建JavaScript框架的详细教程
Jun 30 #Javascript
JavaScript中Null与Undefined的区别解析
Jun 30 #Javascript
You might like
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
PHP实现视频文件上传完整实例
2014/08/28 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
简单的js表单验证函数
2013/10/28 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
python多重继承新算法C3介绍
2014/09/28 Python
python中global与nonlocal比较
2014/11/21 Python
python中threading超线程用法实例分析
2015/05/16 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
Python中datetime模块参考手册
2017/01/13 Python
使用Python对Access读写操作
2017/03/30 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
python 对xml解析的示例
2021/02/27 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
社区健康教育工作方案
2014/06/03 职场文书
建筑工地标语
2014/06/18 职场文书
怎样写辞职信
2015/02/27 职场文书
小学班主任自我评价
2015/03/11 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python