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 序列化对象实现代码
Dec 18 Javascript
向大师们学习Javascript(视频与PPT)
Dec 27 Javascript
DOM 中的事件处理介绍
Jan 18 Javascript
jquery取子节点及当前节点属性值的方法
Sep 09 Javascript
js简单实现调整网页字体大小的方法
Jul 23 Javascript
Node.js五大应用性能技巧小结(必须收藏)
Aug 09 Javascript
React Native之TextInput组件解析示例
Aug 22 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
Nov 29 Javascript
js获取 gif 的帧数的代码实例
Sep 10 Javascript
vue项目中极验验证的使用代码示例
Dec 03 Javascript
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
全面解析Vue中的$nextTick
Dec 24 Vue.js
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
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
微信小程序 开发指南详解
2016/09/27 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
微信小程序checkbox组件使用详解
2018/01/31 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
python分析nignx访问日志脚本分享
2015/02/26 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
Python文件操作基本流程代码实例
2017/12/11 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
Python如何爬取b站热门视频并导入Excel
2020/08/10 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
师范学院毕业生求职信范文
2013/12/26 职场文书
大学生自我鉴定范文
2013/12/28 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
消防安全承诺书
2014/05/22 职场文书
绿色环保口号
2014/06/12 职场文书
2014年世界艾滋病日演讲稿
2014/11/28 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
详解Vue的列表渲染
2021/11/20 Vue.js
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js