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实现类似于ListBox功能示例代码
Mar 09 Javascript
JavaScript获取URL汇总
Jun 08 Javascript
JS+CSS实现闪烁字体效果代码
Apr 05 Javascript
jQuery获取file控件中图片的宽高与大小
Aug 04 Javascript
jQuery EasyUI封装简化操作
Sep 18 Javascript
jQuery使用Layer弹出层插件闪退问题
Dec 22 Javascript
vue组件如何被其他项目引用
Apr 13 Javascript
javascript 数据存储的常用函数总结
Jun 01 Javascript
spring+angular实现导出excel的实现代码
Feb 27 Javascript
layui表格 返回的数据状态异常的解决方法
Sep 10 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
Jan 21 Javascript
vue基于better-scroll实现左右联动滑动页面
Jun 30 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动态生成JavaScript代码
2009/03/09 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
2020/09/13 PHP
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
心扬JS分页函数代码
2010/09/10 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
js实现tab切换效果
2017/02/16 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
Python通过解析网页实现看报程序的方法
2014/08/04 Python
简介Django框架中可使用的各类缓存
2015/07/23 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
shell程序中如何注释
2012/02/17 面试题
接受捐赠答谢词
2014/01/27 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
民政局个人整改措施
2014/09/24 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
费用申请报告范文
2015/05/15 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
MySQL数据管理操作示例讲解
2022/12/24 MySQL