思想为王--写再简单的代码,总要有点编程的思想

刚上班时,对java的所谓的继承、接口之类的什么概念、思想几乎一窍不通,但随着工作的时间增加,虽然写的java代买屈指可数,但随着js脚本代码编写量的增加,对一些原来不理解的概念性的东西渐渐的有了自己理解,并开始尝试哪怕再简单的东西,也要仔细琢磨一番,找到一些更好的方法(即所谓思想)去解决。

曾将写过这样一个简单的全局的function:

    function g_login(){
       var href = window.location.href;
        window.location.href = "/login.jsp?back="+href;
    }

后来发现并不是所有地方都能用这个方法,比如在注册、登入页等,于是就得想办法怎么解决一下,第一反应就想到在需要特殊处理的页面重写一个go_login方法覆盖全局的同名方法,但却觉得有点不情愿,因为同样的功能,在多个地方用到,代码写在多处,如果后期要改或加一些额外的功能难免有遗漏,于是就修改如下:

function g_login(){
       var href = _g_backUrl || window.location.href;
        window.location.href = "/login.jsp?back="+href;
    }

这样,如果哪个页面要对登入后的跳转地址作特殊处理,只要在页面定义变量 _g_backUrl即可,这样登入功能的口子开的比较小,也便于维护和控制。

至于把java接口的思想用于js,我曾经写过下面的代码:

  function loadPage(sId,url){
        $.get(url,function(html){
            $("#"+sId).html(html);
            if(typeof(initPage)=="function"){
                initPage();
            }
        });
  }

其作用是无刷新加载新的页面,局部更新当前页,但对于不同的页面在加载完之后可能需要做不同的脚本处理,如果要在主页面中根据url来处理写不同的代码处理,那将是一场噩梦,因为你无法预知会有多少个url会加进来,所以我就写了如上的代码,initPage可以认为是url页面的一个脚本函数,把每个url加载完要执行的代码全写在initPage,或有initPage再调用其他方法都也可,但主页面的逻辑就清晰了:不管什么页面,只要有initPage函数,就在加载完之后执行,当然没有的话就可以完全忽略。这种主页面中的initPage就类似于java中的接口定义,url的页面中的initPage定义就类似于接口的实现,把要做的事封装在initPage函数中,当页面加载完就由主页面调用执行,至于initPage做哪些事,主页面不用管、不该管、也管不了,这就不就是java接口与实现类的关系、就是目前我对java接口的理解吗?


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值