/*
享元模式:
运用共享技术有效地支持大量的细粒度对象,避免对象间拥有相同内容造成多余的开销。
*/
var Flyweight = function () {
// 已创建的元素
var created = [];
// 创建一个新闻包装容器
function create() {
var dom = document.createElement('div');
// 将容器插入新闻列表容器中
document.getElementById('container').appendChild(dom);
// 缓存新创建的元素
created.push(dom);
// 返回新创建的元素
return dom;
}
return {
// 获取创建新闻元素的方法
getDiv: function () {
// 如果已经创建的元素小于当前页元素总个数,则创建
if (created.length < 5) {
return create();
} else {
// 获取第一个元素,并插入最后面
var div = created.shift();
created.push(div);
return div;
}
}
}
}