A5下载站:努力做内容最丰富最安全的下载站! 网站地图最新更新下载排行专题软件发布

热门软件

地铁跑酷

冒险迷岛

全民迷宫

连连消大作战

小河狸创客

阿里健康医鹿

支付宝app

番薯小说

MOMO陌陌

虾米音乐app

位置导航:A5下载 > 源码技巧 > 父类数据

JS实现简单的图书馆享元模式实例

时间:2015-07-01 10:15来源:a5源码作者:zhao浏览:180
这篇文章主要介绍了JS实现简单的图书馆享元模式,以一个图书馆存书借书的例子分析了图书馆享元模式的实现技巧,需要的朋友可以参考下……

本文实例讲述了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程序设计有所帮助。