javascript 立面结构设计模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 立面结构设计模式相关的知识,希望对你有一定的参考价值。

## Real world example
How do you turn on the computer? "Hit the power button" you say! That is what you believe because you are using a simple interface that computer provides on the outside, internally it has to do a lot of stuff to make it happen. This simple interface to the complex subsystem is a facade.

## In plain words
Facade pattern provides a simplified interface to a complex subsystem.

## Wikipedia says
A facade is an object that provides a simplified interface to a larger body of code, such as a class library.
class Computer {

    getElectricShock() {
        console.log('Ouch!')
    }

    makeSound() {
        console.log('Beep beep!')
    }

    showLoadingScreen() {
        console.log('Loading..')
    }

    bam() {
        console.log('Ready to be used!')
    }

    closeEverything() {
        console.log('Bup bup bup buzzzz!')
    }

    sooth() {
        console.log('Zzzzz')
    }

    pullCurrent() {
        console.log('Haaah!')
    }
}


class ComputerFacade
{
    constructor(computer) {
        this.computer = computer
    }

    turnOn() {
        this.computer.getElectricShock()
        this.computer.makeSound()
        this.computer.showLoadingScreen()
        this.computer.bam()
    }

    turnOff() {
        this.computer.closeEverything()
        this.computer.pullCurrent()
        this.computer.sooth()
    }
}


// IMPLEMENTATION
const computer = new ComputerFacade(new Computer())
computer.turnOn() // Ouch! Beep beep! Loading.. Ready to be used!
computer.turnOff() // Bup bup buzzz! Haah! Zzzzz

以上是关于javascript 立面结构设计模式的主要内容,如果未能解决你的问题,请参考以下文章

模块化立面设计

Google Material Design ALL 24 立面图

MySQL 的对立面轻量级之 MongoDB 数据库

立面图 平面图 剖面图 CAD

OnSetActive() 的“对立面”是啥?

使用AI自动生成建筑立面