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 相关文章推荐
使用jQuery操作Cookies的实现代码
Oct 09 Javascript
jquery禁用右键单击功能屏蔽F5刷新
Mar 17 Javascript
js控制网页背景音乐播放与停止的方法
Feb 06 Javascript
JQuery中上下文选择器实现方法
May 18 Javascript
jqTransform美化表单
Oct 10 Javascript
js仿百度音乐全选操作
Jan 13 Javascript
微信小程序封装自定义弹窗的实现代码
May 08 Javascript
基于vue实现图片验证码倒计时60s功能
Dec 10 Javascript
Vue 3.0 全家桶抢先体验
Apr 28 Javascript
浅谈实现在线预览PDF的几种解决办法
Aug 10 Javascript
微信小程序自定义modal弹窗组件的方法详解
Dec 20 Javascript
详解CocosCreator项目结构机制
Apr 14 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
PHP实现的简单mock json脚本分享
2015/02/10 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
php邮件发送的两种方式
2020/04/28 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
autoPlay 基于jquery的图片自动播放效果
2011/12/07 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
javascript 动态创建表格
2015/01/08 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
一个超级简单的python web程序
2014/09/11 Python
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
Python变量类型知识点总结
2019/02/18 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
python中列表的含义及用法
2020/05/26 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
节约用水标语
2014/06/11 职场文书
主要领导对照检查材料
2014/08/26 职场文书
债务授权委托书范本
2014/10/17 职场文书
项目验收申请报告
2015/05/15 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js