`
samsongbest
  • 浏览: 162372 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

13 行为模式 - 模板方法(Template Method)模式

 
阅读更多

1.用意

准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法的用意。

 

2.类图


 

3.代码

/*
 * 抽象模板纇
 */
public abstract class AbstractClass {
	public void templateMethod() {
		//调用基本方法(由子类实现)
		doOperation1();
		//调用基本方法(由子类实现)
		doOperation2();
		//调用基本方法(已经实现)
		doOperation3();
	}
	/**
	 * 基本方法的声明(由子类实现)
	 */
	protected abstract void doOperation1();
	
	/**
	 * 基本方法的声明(由子类实现)
	 */
	protected abstract void doOperation2();	
	
	/**
	 * 基本方法(已经实现)
	 */
	private final void doOperation3() {
		S.s("doOperation3();");
	}
}


/*
 * 具體模板纇
 */
public class ConcreteClass extends AbstractClass{

	@Override
	protected void doOperation1() {
		S.s("doOperation1();");		
	}

	@Override
	protected void doOperation2() {
		//像下麵這樣的調用不應當發生
		//doOperation3();
		S.s("doOperation2();");
	}
}


/*
 * 測試類
 */
public class Test {

	public static void main(String[] args) {
		AbstractClass ac = new ConcreteClass();
		ac.templateMethod();
	}
}
 

z

  • 大小: 30.6 KB
分享到:
评论

相关推荐

    c++设计模式-行为型模式-模板方法模式

    c++设计模式-行为型模式-模板方法模式;qt工程;c++简单源码; 模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重...

    模板方法模式(TemplateMethod)原理图

    模板方法模式是一种行为设计模式,它在一个方法中定义算法的骨架,将一些步骤延迟到子类中实现。 具体来说,模板方法模式的关键特点包括: 抽象类:在抽象类中定义一个模板方法,该方法给出了算法的框架。 具体...

    python 模板方法模式(示例)

    设计模式——模板方法模式模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤使用场景:当不变和可...

    设计模式--C++

    5.10 TEMPLATE METHOD(模板方法)—类行为型模式 214 5.11 VISITOR(访问者)—对象行为型模式 218 5.12 行为模式的讨论 228 5.12 1 封装变化 228 5.12.2 对象作为参数 228 5.12.3 通信应该被封装还是被分布 229 ...

    设计模式--可复用面向对象软件的基础

    5.10 TEMPLATE METHOD(模板方法)——类行为型模式 5.11 VISITOR(访问者)——对象行为型模式 5.12 行为模式的讨论 第六章 结论 6.1 设计模式将带来什么 6.2 一套通用的设计词汇 6.3 书写文档和学习的辅助手段 ...

    ASP.NET设计模式-杨明军译(源码)

    5.1.3 Template Method模式 5.1.4 State模式 5.1.5 Strategy模式 5.2 应用企业模式 5.2.1 Specification模式 5.2.2 Composite模式 5.2.3 Layer Supertype模式 5.3 应用设计原则 5.3.1 依赖倒置原则和依赖...

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

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

    23种设计模式 (创建型,结构型,行为型)

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

    23种设计模式 - 各种模式的学习

    14. Template Method(模板方法) 15. Chain of Responsibility(责任链) 16. Command(命令) 17. Iterator(迭代器) 18. Mediator(中介者) 19. Memento(备忘录) 20. Observer(观察者) 21. State...

    C#设计模式(23种设计模式)

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

    01-制造工具的工厂模式(1).html

    模板方法模式( Template Method ) 观察者模式( Observer ) 迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式...

    09-通过容器实现的外观模式(2).html

    模板方法模式( Template Method ) 观察者模式( Observer ) 迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式...

    00-初探 Laravel 和其中的设计模式(3).html

    模板方法模式( Template Method ) 观察者模式( Observer ) 迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式...

    12-附录 1 设计模式的七大原则(1).html

    模板方法模式( Template Method ) 观察者模式( Observer ) 迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式...

    design-pattern-java.pdf

    算法的封装与切换——策略模式(四) 模板方法模式-Template Method Pattern 模板方法模式深度解析(一) 模板方法模式深度解析(二) 模板方法模式深度解析(三) 访问者模式-Visitor Pattern 操作复杂对象结构——...

    template-method-alternatives:模板方法模式与世界

    我们希望允许在Processor接口的实例上进行装饰,但我们想通过提供一个在模板方法中实现延迟的抽象类来简化装饰器的实现,而有两种方法可以覆盖装饰器的行为代表团之前和之后。 这两种方法是具体的,但却是空的,以免...

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

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

    设计模式代码——c#

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

    python实现常用的23种设计模式:含源代码、详细文档说明

    1、模板方法模式【Template Method】 2、观察者模式【Observer】 3、状态模式【State】 4、策略模式【Strategy】 5、职责链模式【Chain of Responsibility】 6、命令模式【Command】 7、访问者模式【Visitor】 8、...

    32种设计模式

    模板方法(Template Method) 14. 命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 行为型: 16. 观察者模式(Observer Pattern) 17. 解释器模式(Interpreter Pattern) 18....

Global site tag (gtag.js) - Google Analytics