JS设计模式--门面模式

JS设计模式 --最简单的模式 :门面模式

门面模式的概念:就是为了简化API接口(简化代码)
看下面例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="CommonUtil.js"></script>
</head>
<body>
    <script charset="utf-8">

        // JS设计模式 --最简单的模式  :门面模式
        // 门面模式的概念:就是为了简化API接口(简化代码)


        // 比如:做一件事情必须要调用函数a和函数b
        // function a(x){
        //        //do somenthing
        // };
        // function b(y){
        //        //do somenthing
        // };

        // // 把这两个函数放在一个方法里,这样就可以只调用ab函数就可以实现函数a和函数b的效果了
        // // 就可以简化代码了  这样就是一个最简单的门面模式了
        // function ab(x,y){
        //    a(x);
        //    b(y);
        // };



        // 现在有一个需求:获得页面上的元素,给得到的元素设置CSS样式
        window.onload=function(){
            // 给一个元素设置一个CSS样式
             var div1=document.getElementById('div1');
            //  div1.style.color='red';
             // div1.style['color']='red';  //两种写法

            //  给多个元素设置一个CSS样式
            // setStyle(['div1','div2','div3'],'color','blue');

            // 给多个元素设置多个CSS样式
            setCss(['div1','div2','div3'],{
                background:'green',
                fontSize:'18px',
                color:'red',
            });

        };
        //    参数:id名称数组,要改变的属性,要改变的属性值
        function setStyle(elementsId,prop,val){
             for(var i=0;i<elementsId.length;i++){
               document.getElementById(elementsId[i]).style[prop]=val;
             }
        };
        
     // 这就是一个简单的门面模式 把setStyle包含在里面,调用setCss方法时同时调用了setStyle方法,简化代码
         //    参数:id名称数组,一个对象里面包含要改变的属性和要改变的属性值
        function setCss(elementsId,options){  
             for(var prop in options){  //prop指key值
                //  严谨的判断 判断key是不是对象本身的
                 if(!options.hasOwnProperty(prop)) continue;
                 setStyle(elementsId,prop,options[prop]); //把key和value分别取出来,在调用setStyle方法
             }
        };




    </script>

    <div id="div1">Hello Word!</div>
    <div id="div2">Hello Word!</div>
    <div id="div3">Hello Word!</div>
    
</body>
</html>

门面模式算是最简单也最常用的设计模式了,但是要区分好下篇文章的适配器模式哈。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值