拿一个组件来说吧,现在有一个弹层,长成这样(elementui):
图中标记的数字 1 与 2 就是传入的参数;
如果不传入参数,默认就是“标题名称”、“确定”。
代码实现如下
// 实现与elementui无关,完全自写
// 公共组件,不能动内部结构代码
function adapter(obj) {
var config = {
title: '标题名称',
okText: '确定',
content: '这是一段内容',
}
var newObj = {};
// 如果是传入的新参数,刚覆盖默认参数
for(var i in config) {
newObj[i] = obj[i] || config[i];
}
// ... 以下是实现弹层的内容
}
// 根据业务自行传入参数
adapter({
title: '我是新名称',
okText: '点我没毛病',
})
传入新参数后的样式
总结:
个人总结的适配器模式有点类似一个公共插件,在完成不同的业务需求时,传入不同的参数,来达到不同的效果,以完成最终的业务展现形式。