享元
思想:抽出不同的部分。
// 源代码
function a(paramsm, fn) {
let arr1 = [];
let arr2 = [];
if (params) {
arr1.forEach(fn);
} else {
arr2.forEach(fn);
}
}
// 享元模式
function a(paramsm, fn) {
let arr1 = [];
let arr2 = [];
let target = params ? arr1 : arr2;
target.forEach(fn);
}
桥接
思想:抽出相同的部分。
// 源代码
function a(dom) {
// todo
dom.style.fontSize = '15px';
// ...
}
function B(dom) {
// todo
dom.style.fontSize = '15px';
// ...
}
// 桥接
function a(dom) {
// todo
setFontSize(dom);
}
function B(dom) {
// todo
setFontSize(dom);
}
function setFontSize(dom) {
dom.style.fontSize = '15px';
// ...
}