前端设计模式

设计模式
java(23种)
1.单例模式:一个类只能有一个实例对象,提供一个全局访问点。(创建一个变量存放实例对象 如果对象存在直接返回,不存在则创建返回)
应用:弹窗 axios封装
···
function student(){
this.name="12";
this.ag="aa"
}
let obj=null; //存放对象
function sin(){
if(obj==null){ //不存在则新建
obj=new student();
}
return obj;
}

let a=new sin(1);
let b=new sin(3);
console.log(a===b); //true
···
2.工厂模式:用固定的方式批量创建对象
应用:权限和角色进行判断

function cat(name,age){
    var obj = new Object();
    obj.name = name;
    obj.age = age;
    obj.tt = function(){
        console.log(this.name);
    }
    return obj;
}
var a1= new cat("王1",10);
var a2= new cat("张2",22);
console.log(a1.tt(),a2.tt()) //王1 张2

3.观察者模式:多个观察者,对象发生变化时,通知所有观察者,让他们更新自己的状态。

let a={name:"周杰伦"};
let b ={name:"张杰"};

function han(oldV,newV){
    b.name = newV;
    console.log("b的值"+ newV);
}

Object.defineProperty(a,"name",{
    enumerable:true, //当前属性是否可循环
    configurable:true, //当前属性是否可被设置
    set:function(val){ //设置值
        han(name, val); //a name的值变了通知b name也变
        name = val;
    },get:function(){ //获取值
        return name
    }
})
a.name = "zhoujielun";
console.log(b.name); // b的值zhoujielun zhoujielun

4.发布订阅模式和观察者模式的区别?
观察者:观察者,被观察者。
订阅模式:发布==》中间层==》通知订阅者。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容