JavaScript 外观模式

302 阅读1分钟

为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

大概就是emmmm 去餐馆吃饭你和服务员点了餐,点了酒水,要了几份餐具等等。
你在桌子哪里坐着,服务员就给你把这些事儿给办妥了,还给你送过来。

class Dish {
    make() {
        console.log('制作菜肴')
    }
}

class Wine {
    take() {
        console.log('拿取酒水')
    }
}

class Tableware {
    take() {
        console.log('拿取餐具')
    }
}

class Waiter {
    constructor() {
        this.dish = new Dish()
        this.wine = new Wine()
        this.tableware = new Tableware()
    }
    
    service(typeArr) {
        typeArr.forEach(type => {
            if(type === 'dish') this.dish.make()
            if(type === 'wine') this.wine.take()
            if(type === 'tableware') this.tableware.take()
        })
    }
    
    
}

const waiter = new Waiter()
waiter.service(['dish', 'wine', 'tableware'])