创建者模式

1.工厂模式

给登录模块做一些基础功能
  • 需求1:登录模块名称不符合要求的警示框

  • 需求2:密码也要这样的警示框

  • 需求3:注册确认按钮

  • 需求4:登录成功提示框prompt

  • 实现思路
    登录模块由很多个小模块组成,每个小模块封装一个基类。
    上面我们需要封装 loginAlert类,Loginconfirm类,LoginPrompt类

代码实现
//封装一个LoginAlert类,提供弹出框功能
var LoginAlert = function (text) {
    this.content = text
}
LoginAlert.prototype.show = function () {
    alert(this.content)
}
//实例化
var userNameAlert = new LoginAlert('用户名不能超过16个字')
//需要弹窗,则调用实例的show方法
userNameAlert.show()
var passWordAlert = new LoginAlert('输入的密码不正确')
passWordAlert.show()
var Loginconfirm = function(){
    this.content = text;
}
Loginconfirm.prototype.show = function(){
    //显示确认框
}
var loginFailconfirm = new Loginconfirm('你的用户名不存在')
loginFailconfirm.show()
var LoginPromt = function (text) {
    this.content = text
}
LoginPromt.prototype.show = function () {
    //显示提示框
}
如何调用

当用户交互时,监听交互,在事件回调用需要弹窗就实例化一个对象,并调用show(),上述代码的问题是,提供了三个类,调用人员需要记得东西太多了

改进:使用simple factory 模式

思路:提供一个工厂类,接收参数,自动判断来生成什么实例
优点:使用人员只需要记住简单参数,通过工厂中介
缺点:工厂责任重。。。。。

var PopFactory = function(name){
    switch (name){
        case 'alert':
            return new LoginAlert()
        case 'confirm':
            return new Loginconfirm()
        case 'prompt':
            return new LoginPromt()
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,025评论 3 119
  • 今天下午下起了一场大雨。我和尚昶烨,董振贺哥哥一起去学画画了。我们画了一条大鱼,这条鱼是躺着的,我画的这条鱼的身体...
    张雪涵阅读 611评论 0 0
  • 心安是最大的幸福 俗话说,为人不做亏心事,不怕半夜鬼敲门。这就叫心安理得。孔子说,“君子坦荡荡,小人长戚戚。” 康...
    悟道修行阅读 309评论 0 2
  • 《夏日山中》 唐-李白 懒摇白羽扇,裸袒青林中。 脱巾挂石壁,露顶洒松风。 译文: 懒得摇动白羽扇来祛暑,裸着身子...
    e89e19494dfb阅读 1,432评论 0 0