javascript 中模板方法单例的实现方法


Posted in Javascript onOctober 17, 2017

javascript 中模板方法单例的实现方法

模板方法单例

模板方法的定义:父类中定义一组操作算法骨架,将一些实现步骤延伸到子类中,使得子类可以不改变父类的算法结构的同时可重新定义算法中某些实现步骤。

代码块

html部分,例如:

<div id="content"></div>

js部分,例如:

//格式化字符串方法
  function fromateString(str, data) {
   return str.replace(/\{#(\w+)#\}/g, function(match, key){
    return typeof data[key] === undefined ? '' : data[key]
   });
  }
  //基础导航
  var Nav = function (data) {
   //基础导航样式模板
   this.item = '<a href="{#href#}" rel="external nofollow" title="{#title#}">{#name#}</a>';
   //创建字符串
   this.html='';
   for (var i = 0; i < data.length; i++) {
    this.html += fromateString(this.item, data[i]);
   }
   return this.html;
  }
  //带有信息提示信息导航
  var NumNav = function (data) {
   //消息提醒小心组件模板
   var tpl = '<p>{#num#}</p>';
   for (var i = data.length -1; i >= 0; i--) {
    data[i].name += data[i].name + fromateString(tpl, data[i]);
   }
   return Nav.call(this, data);
  }
  //带有链接地址的导航
  var LinkNav = function (data) {
   //消息提醒小心组件模板
   var tpl = '<span>{#link#}</span>';
   for (var i = data.length -1; i >= 0; i--) {
    data[i].name += data[i].name + fromateString(tpl, data[i]);
   }
   return Nav.call(this, data);
  }

  //测试带有信息提示的导航
  var nav = document.getElementById('content');
  nav.innerHTML = NumNav([
   {
    href : 'www.baidu.com',
    title : '百度一下你就知道',
    name : '百度',    
    num : 10,
    link : 'www.baidu.com'
   },
   {
    href : 'www.taobao.com',
    title : '淘宝商城',
    name : '淘宝',    
    num : 2,
    link : 'www.taobao.com'
   },
   {
    href : 'www.qq.com',
    title : '腾讯首页',
    name : '腾讯',    
    num : 3,
    link : 'www.qq.com'
   }
  ]);

其实模板方法模式不仅仅在我们归一化组件的时候使用 有时候创建页面时也是很常用到的。通过上述代码可以衍生出的静态页面的封装以及业务逻辑的交互封装。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery Ajax之$.get()方法和$.post()方法
Oct 12 Javascript
uploadify在Firefox下丢失session问题的解决方法
Aug 07 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
Apr 15 Javascript
60个很实用的jQuery代码开发技巧收集
Dec 15 Javascript
生成二维码方法汇总
Dec 26 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
Aug 22 Javascript
详解Javascript继承的实现
Mar 25 Javascript
js实现无缝循环滚动
Jun 23 Javascript
实例详解JSON取值(key是中文或者数字)方式
Aug 24 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
Dec 10 Javascript
javascript实现商品图片放大镜
Nov 28 Javascript
vue滚动轴插件better-scroll使用详解
Oct 17 #Javascript
react中的ajax封装实例详解
Oct 17 #Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
Oct 17 #Javascript
打造通用的匀速运动框架(实例讲解)
Oct 17 #Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
Oct 17 #Javascript
Vue中封装input组件的实例详解
Oct 17 #Javascript
js获取文件里面的所有文件名(实例)
Oct 17 #Javascript
You might like
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
深入理解php的MySQL连接类
2013/06/07 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
bootstrap下拉菜单使用方法解析
2017/01/13 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
Python subprocess库的使用详解
2018/10/26 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
Python的互斥锁与信号量详解
2019/09/12 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
住宅质量保证书
2014/04/29 职场文书
教师工作失职检讨书
2014/09/18 职场文书
单位员工收入证明样本
2014/10/09 职场文书
家庭经济困难证明
2015/06/23 职场文书