如何应用模板模式在现有的代码中

先上代码

var formatString = function(str,data){
				return str.replace(/\{#(\w+)#\}/g,function(match,key){
					return typeof data[key] === undefined ?  ‘‘ : data[key]
				});
			}

			self.each(function(){
				_this = $(this);
				//_html = ‘<div class="‘+iset.iSelectBox+‘"><div class="‘+iset.iSelectCurrent+‘" style="width:‘+iset.width+‘px">‘+self.find(‘option:selected‘).text()+‘</div><dl class="‘+iset.iSelectOption+‘" style="display:none; z-index:9999; width:‘+iset.width+‘px;">‘;
				//模板模式start
				var tpl = {
					d : [
						‘<div class="{#iselectbox#}">‘,
							‘<div class="{#iselectcurrent#}" style="width:{#width#}px">‘,
								‘{#text#}‘,
							‘</div>‘,
							‘<dl class="{#iselectoption#}" style="display:none; z-index:9999; width:{#width#}px;">‘

					].join(‘‘)
				}
				var idata = {
					iselectbox:iset.iSelectBox,
					iselectcurrent:iset.iSelectCurrent,
					width:iset.width,
					text:self.find(‘option:selected‘).text(),
					iselectoption:iset.iSelectOption
				}
				console.log(idata);
				_html += formatString(tpl[‘d‘],idata);
				//模板模式end

主要应用在字符串拼接的应用中,这样可以减少以前经常出现的拼接错误,格式比较清晰吧。

时间: 2024-11-11 04:48:18

如何应用模板模式在现有的代码中的相关文章

模板模式和适配器模式

一.模板模式 1.模板模式(Template Method pattern):指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤.(属于行为型模式) 2.适用场景 一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现 各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复 3.优点 提高代码的复用性 提高代码的扩展性 符合开闭原则 4.缺点 类数目的增加 间接地增加了系统实现的复杂度 继承关系自

设计模式(十一): 模板模式

模板模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板.它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行.这种类型的设计模式属于行为型模式. 介绍 意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 主要解决:一些方法通用,却在每一个子类都重新写了这一方法. 何时使用:有一些通用的方法. 如何解决:将这些通用算法抽象出来. 关键代码:在抽象类实现,其

模板模式的应用

可以这么说,不懂设计模式,难以理解面向对象的思想.也可以反过来说,不理解面向对象的思想,很难理解设计模式.不是吗? 今天我要和大家说一说c#实现模板模式,这是一个非常常用,并且简单的模式,在众多的设计模式中,这是我用的最多,而且是自然而然地应用,没有担心过什么. 曾几何时,模板模式悄悄地跑到我的代码里面了,也许是我看别人的代码时,不小心学到的. 有这么一个场景:我需要做“个人成果导出”和“管理后台的成果导出”,两个模块的实现的功能是一样的,都是在页面上展示成果列表,然后可以管理.查询.导出成果.

设计模式之&mdash;&mdash;Template模板模式

Template模式又叫模板模式,是在父类中定义处理流程的框架,在子类中实现具体处理逻辑的模式.当父类的模板方法被调用时程序行为也会不同,但是,不论子类的具体实现如何,处理的流程都会按照父类中所定义的那样进行. 示例程序: 将一段字符串和字符循环显示五次的程序: AbstractDisplay 父类抽象的模板,里面定义了处理流程,但是没有具体把实现写出来 package site.wangxin520.gof.template; /** * 模板模式的模板,使用的是抽象类和抽象方法. * 在此模

模板模式

模板模式:解决某类事情的步骤有些是固定的,有些是会发生变化的,那么这时候我们可以为这类事情提供一个模板代码,从而提高效率. 模板模式的步骤: 1.先写出解决该类事件中的一件的解决方案. 2.分析代码,把会发生变化的代码抽取出来独立成一个方法.把该方法描述成一个抽象的方法. 3.是用final关键字修饰模板方法,防止别人重写你的模板方法. 例子:需求:编写一个计算程序运行时间的模板. 代码示例: 1 abstract class ProgramRuntime 2 { 3 public final

设计模式之 - 模板模式(Template Pattern)

引入:这几天在看一本讲spring源码的书<SPRING技术内幕>里面在讲加载配置文件的时候,可以有不同的加载方式,如根据文件系统目录加载配置文件(FileSystemXmlApplicationContext),类路径加载配置文件(ClassPathXmlApplicationContext),以及根据项目上下文目录(XmlWebApplicationContext)加载配置文件.这个在加载的过程中就使用了模板设计模式,所以就来学习下模板设计模式. 1. 模板设计模式在书中定义:  定义一个

行为模式之Template(模板模式)

模板模式定义一系列的操作流程,并将其中的一个或多个操作的实现延迟到子类之中. 我们以牛奶加工过程为例,当然对其做了简化,具体流程如下图: 首先,将加工过程定义成一个抽象类: AbstractMilkProcess package com.design; /**牛奶加工过程 * @author wobendiankun *2015-1-21 下午08:01:57 */ public abstract class AbstractMilkProcess { /** *挤奶 */ protected

设计模式——模板模式(C++实现)

模板模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 模板模式通过把不变的行为搬移到超类,去除子类中的重复代码来体现它的优势. 通过继承和多态来实现. 行为型模式. spp业务框架中的server_task(CServerTask类)就是这么一个东西.非常常用的一个模式. 使用场景: 1.有多个子类共有的方法,且逻辑相同. 2.重要的.复杂的方法,可以考虑作为模板方法. 1 #include <iostream>

设计模式(7)--模板模式

//7.模板模式 //ver1 //考试试卷类 class TestPaper { public: void TestQuestion1(){} void TestQuestion2(){} virtual string Answer1() { return ""; } virtual string Answer2() { return ""; } }; class TestPaperA : public TestPaper { public: void TestQ