从 Javascript 看适配器模式

112 阅读1分钟

使用场景

有时候我们会遇到命名不完全相同,但是功能上,意义上是一样的东西,比如后端返回的数据,可能不同的接口,数据的属性名不一样,结构不一样。比如我们需要在不同的平台调用不同的方法等等。这时候就可以使用适配器模式。

适配器模式

适配器模式就是指使用一个函数对输入进行处理,然后输出符合我们想要的内容。通常每个适配器只负责一种适配。

使用方法

比如数据不一样的使用方法:

    const data = [
        {
            name: 'foo',
            age: 12
        },
        {
            name: 'bar',
            age: 11
        }
    ]
    
    function adaptor(data) {
        return data.reduce((a, b) => {
            a[b.name] = b.age
            return a
        },{})
    }
    
    const suitableData = adaptor(data)

另外就是接口的适配,有时候我们提供了一套api,但是内部的行为需要根据不同的平台进行实际的调用。

    // 写点伪代码
    function render() {
        if (app) {
            app.render()
        } else if (web) {
            web.render()
        }
    }