JS常见的设计模式

1.单例模式

无论调用多少次只会产生一个实例

let obj=(function(){
    return {
        fn1(){},
        fn2(){}
})()

 2.构造器模式

可以产生多个实例对象并且可以共有一些方法

class Fn(){
    constructor(name){
        this.name=name;
}
getName(){}
}

3.工厂模式

根据条件不同产生不同的结果

function factory(){
    if(arguments.length==1){
        //处理方法
    };
    if(arguments.length==2){
        //处理方法
    }
   ....

}

4.原型模式

function Person(){
    function F(){};
    F.prototype={
        say(){
            console.log(this.name)
        };
    let f=new F();
    f.name="zhangsan";
    return f;
}

5.发布订阅者模式

一对多的模式

let sub1 = {
    update: function() {
        console.log(1);
    }
};
let sub2 = {
    update: function() {
        console.log(2);
    }
};
let sub3 = {
    update: function() {
        console.log(3);
    }
};

function Dep() {
    this.subs = [sub1, sub2, sub3]
};
Dep.prototype = {
    notify() {
        this.subs.forEach(function(sub) {
            sub.update()
        })
    }
};
let dep = new Dep();
let pub = {
    publish: function() {
        dep.notify()
    }
};

6.代理模式

7.策略模式

8.建造者模式

9.中介者模式

10.装饰者模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天都在掉头发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值