博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript设计模式(一)
阅读量:6229 次
发布时间:2019-06-21

本文共 1732 字,大约阅读时间需要 5 分钟。

前言

本系列文章为作者自己的学习笔记,大佬请自动越过

Javascript设计模式之创建型设计模式

设计模式是一种软件开发的思想,有益于降低代码的耦合性,增强代码的健壮性。往往在大型项目中用的比较多。

一. 简单工厂模式

简单工厂模式: 又叫静态工厂方法,由一个工厂对象决定创建某一种产品对象实例。主要用来创建同一类对象

/*方式一,对不同类实例化封装*/    //创建提示框类    var  LoginAlert  = function(text){        this.content = text    }        LoginAlert.prototype.show = function(){        //显示警示框    }        var userNameAlert = new LoginAlert('用户名不能多于16个字母或数字');    userNameAlert.show();        var passWordAlert = new LoginAlert('密码错误');    passWordAlert.show();            //创建确认框类    var LoginConfirm = function(text){        this.content = text    }        LoginConfirm.prototype = {        show:function(){            //弹出确认框(确认框是包含两个按钮的)                },        draw:function(){//绘制确认框                    }        }        var loginSucess = new LoginConfim('欢迎回来');    var loginFailed = new LoginConfim('登录失败');    loginSucess.draw();    loginSucess.show();    loginFailed.show();        //现在将两个类封装成一个简单工厂函数    var PopFactory = function(name){        switch(name){            case 'alert'                return new LoginAlert();            case 'confirm'                return new LoginConfirm();        }    }        new PopFactory('alert');        /*方式二,创建相似对象*/    function CreatPop(type,text){        var o = new Object();        o.content = text;        o.show = function(){            //显示弹框        }                if(type == 'alert'){            //        }        if(type == 'confirm'){            //确认框        }                return o    }        var loginConfirm = new CreatPop('confirm','欢迎回来')复制代码

总结

第一种方式是通过实例化对象创建的,第二种是通过创建一个新对象然后包装增强其属性功能来实现的。他们之间的差异性也造成前面通过类创建的对象,如果这些类继承一同父类,那么他们的父类原型上的方法是可以共用的。而寄生方式创建的对象是一个新个体,所以他们的方法就不能共用了。

转载于:https://juejin.im/post/5cc02a4c6fb9a031fe3bc8c9

你可能感兴趣的文章
我们一起学习WCF 第五篇数据协定和消息协定
查看>>
Linux 与 Windows 文件互传(VMWare)
查看>>
Python学习笔记八 面向对象高级编程(一)
查看>>
Oracle内置函数
查看>>
UVA 1645 Count
查看>>
贪吃蛇程序
查看>>
poj 1419 Graph Coloring
查看>>
node的安装及其运用及相关配置
查看>>
第19篇 2016年计划
查看>>
左连接,右连接,内连接
查看>>
Django+element ui前后端不分离的博客程序
查看>>
托福听力
查看>>
2018-2019-1 20165302 《信息安全系统设计基础》第四周学习总结
查看>>
类似百度图片排版效果
查看>>
【学习笔记】DataTable根据多列分组
查看>>
PE文件格式介绍
查看>>
使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序
查看>>
求助关于asp.net里使用ocx控件的问题
查看>>
asp.net生成条形码
查看>>
线段树基本格式
查看>>