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示例收集
Nov 05 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
May 07 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
Jul 17 Javascript
jquery表单验证插件formValidator使用方法
Apr 01 Javascript
JS实现动态增加和删除li标签行的实例代码
Oct 16 Javascript
关于json字符串与实体之间的严格验证代码
Nov 10 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
Dec 12 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
Nov 20 Javascript
浅谈super-vuex使用体验
Jun 25 Javascript
图文详解vue框架安装步骤
Feb 12 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
Oct 26 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获取网页内容方法总结
2008/12/04 PHP
ucenter通信原理分析
2015/01/09 PHP
php实现点击可刷新验证码
2015/11/07 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
十大热门的JavaScript框架和库
2017/03/21 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python正则表达式之作业计算器
2016/03/18 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
python numpy存取文件的方式
2020/04/01 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
什么是servlet链?
2014/07/13 面试题
服装发布会策划方案
2014/05/22 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
英语专业求职信
2014/07/08 职场文书
自查自纠整改报告
2014/11/06 职场文书
贫困生证明范文
2015/06/16 职场文书
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers
Python+DeOldify实现老照片上色功能
2022/06/21 Python