适配器模式

141 阅读1分钟

拿一个组件来说吧,现在有一个弹层,长成这样(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: '点我没毛病',
    })

传入新参数后的样式

总结:

个人总结的适配器模式有点类似一个公共插件,在完成不同的业务需求时,传入不同的参数,来达到不同的效果,以完成最终的业务展现形式。