`
huxiwenwen
  • 浏览: 535 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
最近访客 更多访客>>
社区版块
存档分类
最新评论

模板模式(Template pattern)

阅读更多
模板模式有父类和子类构成;父类是抽象类,构建了一个模板规定了完成某件事的流程;子类继承父类并实现具体的每个流程操作;

以下是junit3中父类规定了执行测试时候先后要执行的3个方法的顺序,方法内容提供给子类去多态
public abstract class TestCase extends Assert implements Test {

	public void runBare() throws Throwable {
		setUp();
		try {
			runTest();
		}
		finally {
			tearDown();
		}
	}

	protected void runTest() throws Throwable {
		assertNotNull(fName);
		Method runMethod= null;
		try {
			runMethod= getClass().getMethod(fName, null);
		} catch (NoSuchMethodException e) {
			fail("Method \""+fName+"\" not found");
		}
		if (!Modifier.isPublic(runMethod.getModifiers())) {
			fail("Method \""+fName+"\" should be public");
		}

		try {
			runMethod.invoke(this, new Class[0]);
		}
		catch (InvocationTargetException e) {
			e.fillInStackTrace();
			throw e.getTargetException();
		}
		catch (IllegalAccessException e) {
			e.fillInStackTrace();
			throw e;
		}
	}

	protected void setUp() throws Exception {
	}

	protected void tearDown() throws Exception {
	}
}



下面是子类继续父类,用多态来具体实现父类定义的方法
public class CalculatorTest extends TestCase
{
		
	@Override
	public void setUp() throws Exception
	{
		System.out.println(++count);
		
		cal = new Calculator();
	}
	
	@Override
	public void tearDown() throws Exception
	{
		
	}

	public void testAdd()
	{
		int result = cal.add(1, 2);
		
		Assert.assertEquals(3, result);
	}
	
	public void testSubtract()
	{
		int result = cal.subtract(1, 2);
		
		Assert.assertEquals(-1, result);
	}
	
	public void testMultiply()
	{
		int result = cal.multiply(2, 3);
		
		Assert.assertEquals(6, result);
	}
}
	public static void main(String[] args)
	{
		junit.swingui.TestRunner.run(CalculatorTest.class);
	}
}
分享到:
评论

相关推荐

    模板模式Template Pattern

    ### 模板模式 (Template Pattern) #### 一、概述 模板模式是一种常用的行为设计模式,其核心在于定义了一个算法的框架,并允许子类提供具体的实现细节。通过这种方式,子类可以继承并重写某些方法,但整个算法的...

    模版方法模式TemplatePattern

    模板方法模式(Template Pattern)是设计模式中行为型模式的一种,它定义了操作中的算法骨架,而将一些步骤延迟到子类中。这种模式允许子类重新定义或改变某些基本操作,但整体结构和顺序保持不变。在Java编程中,...

    Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现

    模板方法模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在C++这样的面向对象编程语言中。这种模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的...

    Pattern Recognition Letters论文模板

    《模式识别信函》(Pattern Recognition Letters) 是一本在计算机科学和信息技术领域内享有盛誉的期刊,专注于模式识别和机器学习的研究成果。这个压缩包提供了该期刊的论文提交模板,方便作者按照统一的格式规范撰写...

    Elsevier - Pattern Recognition Letters模板

    《Elsevier - 模式识别信函》(Pattern Recognition Letters) 是一本国际知名的学术期刊,专注于模式识别和机器学习领域的研究。此模板是为在该期刊发表论文的作者准备的,旨在提供一个标准的格式,确保文章符合...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合...

    2020版本 Elsevier - Pattern Recognition Letters论文模板--可以直接用来编辑

    《Elsevier模式识别信函(Pattern Recognition Letters)2020版论文模板解析与使用指南》 在学术界,撰写高质量的研究论文是每个科研人员必须掌握的技能之一。选择一个合适的论文模板能大大提高论文编写的效率和...

    TemplatePattern:模板模式示例

    模板模式 模板模式示例 在模板模式中,抽象类公开定义的方式/模板来执行其方法。 它的子类可以根据需要重写方法的实现,但是调用的方式应与抽象类所定义的方式相同。 此模式属于行为模式类别。 执行 我们将创建一个...

    设计模式之简单模板模式(附demo)

    **模板模式(Template Pattern)**是一种行为设计模式,它使你能在抽象类中定义操作算法的框架,而将一些步骤延迟到子类中。这样,子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在Java、C#等面向...

    Template模式

    **模板模式(Template Pattern)**是一种行为设计模式,它在面向对象编程中扮演着重要的角色,尤其是在代码复用和保持代码结构一致性方面。该模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。这使得子类...

    用Java实现23种设计模式

    模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4. J2EE 模式 MVC 模式(MVC Pattern) 业务代表模式(Business Delegate Pattern) 数据访问对象模式(Dao Pattern) 前端控制器模式(Front ...

    C#版 24种设计模式

    工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm”供参考。 注:项目在 VS2008 下...模板方法模式(Template Method) 访问者模式(Visitor)

    php设计模式 Template (模板模式)

    模板模式(Template Pattern)是行为设计模式的一种,属于GOF(Gang of Four)设计模式中的结构型模式。这种模式主要用于定义算法的骨架,它将一些步骤的实现延迟到子类中。模板方法使得子类可以在不改变算法结构的...

    C#模板方法模式(Template Method Pattern)实例教程

    模板方法模式(Template Method Pattern)是一种行为设计模式,它允许在定义算法的框架时,将具体步骤延迟到子类中。这种模式的核心在于抽象类,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。子类可以...

    33种JAVA设计模式DEMO

    模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4 J2EE 模式 这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。 MVC 模式(MVC Pattern) 业务代表模式(Business Delegate ...

    Java设计模式之模板模式(Template模式)介绍

    模板模式(Template Pattern)是设计模式中的一种行为模式,它提供了一种代码复用的方式,通过定义一个操作的框架,将具体的实现细节留给子类来完成。这种模式使得程序的结构更加清晰,同时也增强了代码的可扩展性。...

    C#设计模式_设计模式_C#_

    模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者模式(Observer Pattern) 17. 解释器模式(Interpreter Pattern) 18. 中介者模式(Mediator Pattern) 19. ...

    设计模式_模板方法模式.zip

    在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 模板方法模式 java ...

Global site tag (gtag.js) - Google Analytics