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 相关文章推荐
[JS]点出统计器
Oct 11 Javascript
setAttribute 与 class冲突解决
Feb 17 Javascript
自动完成JS类(纯JS, Ajax模式)
Mar 12 Javascript
JQUERY对单选框(radio)操作的小例子
Apr 25 Javascript
node.js中的fs.fchown方法使用说明
Dec 16 Javascript
JS简单实现多级Select联动菜单效果代码
Sep 06 Javascript
浅析JS运动
Dec 28 Javascript
基于javascript实现图片滑动效果
May 07 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
jQuery Mobile和HTML5开发App推广注册页
Nov 07 Javascript
elementUI 设置input的只读或禁用的方法
Oct 30 Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 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
smarty的保留变量问题
2008/10/23 PHP
php 解压rar文件及zip文件的方法
2014/05/05 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
浅谈vuepress 踩坑记
2018/04/18 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
2018/01/11 Python
Python工程师面试必备25条知识点
2018/01/17 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
Python常见字典内建函数用法示例
2018/05/14 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
公司面试感谢信
2014/02/01 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
Win10 最新稳定版本 21H2开始推送
2022/04/19 数码科技