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程序設(shè)計有所幫助。
您可能感興趣的文章:
相關(guān)文章
JavaScript對象訪問器Getter及Setter原理解析
這篇文章主要介紹了JavaScript對象訪問器Getter及Setter原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-12-12
Sample script that displays all of the users in a given SQL
Sample script that displays all of the users in a given SQL Server DB...2007-06-06

