js组合模式

一、组合模式

        一个项目往往有多个实例化对象,每一个实例化对象都需要调用执行入口函数init(),使用一个构造函数创建一个实例化对象,存储所有需要调用执行的实例化对象,再用入口函数 init()统一调用。简单理解就是一键启动。

        //构造函数1

class Fun1{

        constructor(){}

        init(){

            this.f11();

            this.f12();    

        }

        f11(){console.log(111)};

        f12(){console.log(222)};

}

//构造函数2

class Fun2{

        constructor(){};

        init(){

            this.f21();

            this.f22();    

        }

        f21(){console.log(221)};

        f22(){console.log(222)};

}

//构造函数3

class Fun3{

        constructor(){};

        init(){

                this.f31();

                this.f32();

        }

        f31(){console.log(311)}

        f32(){console.log(321)}

}

const obj1=new Fun1();

const obj2=new Fun2();

const obj3=new Fun3();

//组合模式

class Group{

        constructor(){

        this.arr=[ ];

        }

        add(...array){

        array.forEach(item=>{

                if(this.arr.indexOf(item) === -1){

                        this.arr.push(item);

                }

        })

        };

        extend(){

                this.arr.forEach(item=>{

                        item.init();

                })

        };

}

const objGroup=new Group();

objGroup.add(obj1,obj2);

objGroup.add(obj3);

objGroup.extend();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值