party-bid短信处理,sms责任链模式

<div class="iteye-blog-content-contain" style="font-size: 14px"></div>

为了使我们的程序看起来更加面向对象,我们不但要把自己的代码功能模块化,每个函数只实现一个功能,还要写成责任链的模式,使我们的程序可读性更强,逻辑更加清晰。下面是我在party-bid里的短信处理SMS的一个例子。第一段就是用责任链的模式写的,第二段是没有实现没有改写之前的代码,它们实现了同样的功能,大家可以对比看到责任链模式的优越性。

function SMS(phone, type, value) {
    this.phone = phone
    this.type = type
    this.value = value
}

function notify_sms_received(json_message) {
    _.each(json_message.messages, function (num) {
        new SMS(num.phone,num.message.substr(0, 2).toUpperCase(),num.message.substr(2).trim()).start()
    })
}

SMS.prototype.start = function () {
    if (this.bm() == false) {
        this.jj();
    }
}

SMS.prototype.bm = function () {
    if (this.type == 'BM' && localStorage.is_signing_up == 'true') {
        return SignUp.judge_repeat_phone(this.value, this.phone)
    }
    return false
}

SMS.prototype.jj = function (){
    if(this.type == 'JJ' && !isNaN(this.value) && localStorage.is_bidding == 'true' && Bidding.get_name(localStorage.current_activity,localStorage.current_bid,this.phone)){
        return Bidding.judge_repeat_phone(this.value, this.phone)
    }
}

 

function notify_sms_received(json_message) {
    var SMSObj = sms_to_obj(json_message)
    var flag = SMSObj.text.substr(0, 2).toUpperCase()
    var phone = SMSObj.phone
    if (flag == "BM") {
        var name = SMSObj.text.substr(2).trim()
        return process_sign_up_message(name, phone)
    }
    var price = SMSObj.text.substr(2).trim()
    if (flag == 'JJ' && !isNaN(price)) {
        return process_bid_message(price, phone)
    }
}

function process_sign_up_message(name, phone) {
    if (localStorage.is_signing_up == 'true') {
        return SignUp.judge_repeat_phone(name, phone)
    }
}

function process_bid_message(price, phone) {
    if (localStorage.is_bidding == 'true' && Bidding.get_name(localStorage.current_activity,localStorage.current_bid,phone)) {
        return Bidding.judge_repeat_phone(price, phone)
    }
}

function sms_to_obj(json_message){
    var SMSObj;
    _.each(json_message.messages, function (message) {
        SMSObj = {
            'text': message.message,
            'phone': message.phone
        }
    })
    return SMSObj
}

 

 
//========================================= // BidCms 程序说明 //========================================= 尊敬的朋友你们好,感谢您选择BidCms开源竞拍系统,BidCms自发布以来已经经历了三个版本的更新,功能也越来越丰富,系统也更加稳定成熟。这也是更多的站长毫不犹豫选择BidCms的理由。我们至力于电子商务十余年的研究开发,准确的把握电子商务的发展方向,推出了一系列的软件,受到了广大朋友的一至拥护,我们专注,所以专业 BidCms系统优点如下: 1.抗压能力强,经压力测试CPU最高占用40%,内存最高700M,在同行业中处于领先地位 2.数据库压力小,采用了大量缓存及内存表设计 3.功能丰富,竞猜,积分,自动出价等功能应有尽有 4.集成ucenter能与各种程序会员同步共享,免激活一步注册 5.集成短信验证,实名制让客户更信任网站 6.互动性强,留言反馈,聊天室, 7.诚信度高,晒单功能,让客户来证明商品的质量 8.支持伪静态 以及更多的功能等待您去发现 演示地址:http://jingpai.cc //========================================= // BidCms 程序安装文档 //========================================= 1.本程序绑定ucenter,如果您本机上已有ucenter可以跳过ucenter安装,如果没,请先运行ucenter安装程序:http://您的域名/uc_server/install/index.php 1. 将 upload 文件夹下所有的文件上传至根目录 2. 如果您的主机为 *nix 操作系统,请设置如下文件夹权限为 777 ./data ./data/adjs ./data/cache ./data/logo ./data/sqlbackup ./data/upload ./data/goods 3. 通过浏览器访问 http://您的域名/install/index.php, 根据提示填写 mysql 配置信息、管理员账号信息 4. 通过 FTP 删除 install 目录 5. 进入ucenter管理后台添加ucenter应用,将生成的信息复制到data/config.uc.php中,如果通信成功,则安装成功 6. 完成安装
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值