前言
本系列文章为作者自己的学习笔记,大佬请自动越过
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','欢迎回来')复制代码
总结
第一种方式是通过实例化对象创建的,第二种是通过创建一个新对象然后包装增强其属性功能来实现的。他们之间的差异性也造成前面通过类创建的对象,如果这些类继承一同父类,那么他们的父类原型上的方法是可以共用的。而寄生方式创建的对象是一个新个体,所以他们的方法就不能共用了。