JS實現(xiàn)簡單的圖書館享元模式實例
更新時間:2015年06月30日 12:13:44 作者:方方和圓圓
這篇文章主要介紹了JS實現(xiàn)簡單的圖書館享元模式,以一個圖書館存書借書的例子分析了圖書館享元模式的實現(xiàn)技巧,需要的朋友可以參考下
本文實例講述了JS實現(xiàn)簡單的圖書館享元模式。分享給大家供大家參考。具體如下:
<!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程序設計有所幫助。
相關(guān)文章
Express代理轉(zhuǎn)發(fā)服務器實現(xiàn)
這篇文章主要為大家介紹了Express代理轉(zhuǎn)發(fā)服務器實現(xiàn)技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05

