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中简单的实现像C#中using功能(有源码下载)
Jan 09 Javascript
基于jquery css3实现点击动画弹出表单源码特效
Aug 31 Javascript
jQuery遍历json的方法分析
Apr 16 Javascript
利用Vue实现移动端图片轮播组件的方法实例
Aug 23 Javascript
vue中使用ueditor富文本编辑器
Feb 08 Javascript
vue自定v-model实现表单数据双向绑定问题
Sep 03 Javascript
iview在vue-cli3如何按需加载的方法
Oct 31 Javascript
VUE搭建手机商城心得和遇到的坑
Feb 21 Javascript
Vue函数式组件-你值得拥有
May 09 Javascript
通过说明与示例了解js五种设计模式
Jun 17 Javascript
jQuery位置选择器用法实例分析
Jun 28 jQuery
vue实现滑动解锁功能
Mar 03 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+mysql事务rollback&amp;commit示例
2010/02/08 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
react实现菜单权限控制的方法
2017/12/11 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
python实现文本去重且不打乱原本顺序
2016/01/26 Python
python 实现倒排索引的方法
2018/12/25 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
python圣诞树编写实例详解
2020/02/13 Python
python实现井字棋小游戏
2020/03/04 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
本科毕业生应聘自荐信范文
2014/06/26 职场文书
2014年劳动部工作总结
2014/12/11 职场文书
李白故里导游词
2015/02/12 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫