首先让我们看看生活之中的“模板”,在《设计模式-JAVA语言中的应用》是这样说的:“模板(Template)是指在薄片塑料板上面写字(或印字)后挖空,再使用毛笔或色笔涂满挖空的部分,就能看到纯手工而又不失工整的字样。看到模板上挖空形状,马上就知道最后会变出什么样的字,不过实际上所显示出来的字样还是要依使用的画笔的种类而定。拿黑色签字笔当画笔,成果当然就是签字笔风的字样;光是铅笔来画,得到的也就是灰黑色的铅笔字;如果用五颜六色的彩色笔,自然能创造出让人眼花缭乱的多色字样。但是,无论使用那种文具,制造出来的字样都还是脱不了模板上已经固定的形状。”这个例子想必日常生活中我们都见过吧!不过这和我们要讨论的Template Method有什么关系呢?
Template Method模式的目的:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。
看一个具体的例子,假如一个工作流由三个步骤来完成,执行的顺序为123依次执行,而每一个具体的步骤可能根据具体情况会有所不同,那麽我们制造如下的一个“薄片塑料板”: 最后让我们来看看如何制作出来不同的“字体”吧!
- public abstract class WorkFlow {
- public abstract void stepOne();
- public abstract void stepTwo();
- public abstract void stepThree();
- public final void work() {
- stepOne();
- stepTwo();
- stepThree();
- }
- }
注意关键字final的意义,它意味其子类不能对工作步骤的顺序进行修改,对于abstract,我们可能意识到它并不像我们开始时认为的那麽无用了,这里的用法也是抽象类的真正含义之一。下面我们来造作两种不同的“笔风”:
分享到:
相关推荐
文件名"templatemethod"和"factory"暗示了博主可能分别展示了这两种模式的实例代码或者类结构。 总结来说,工厂模式和模板方法模式是面向对象设计的重要工具,它们可以帮助我们更好地组织代码,降低耦合,提高代码...
3. **行为型模式**:包括策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、访问者(Visitor)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Memento)、...
第21章 模板方法(template method)模式 182 第22章 状态(state)模式 193 第23章 策略(strategy)模式 204 第24章 命令(command)模式 213 第25章 解释器(interpreter)模式 221 第26章 扩展型模式介绍 236 第27章 装饰...
命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、访问者模式(Visitor)、备忘录模式(Memento)、观察者模式(Observer)、状态模式(State)、策略模式(Strategy)、模板方法模式...
比如命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(...Strategy)、模板方法模式(Template Method)和访问者模式(Visitor)...
3. 行为型模式:这类模式关注对象之间的交互和职责分配,包括策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、命令模式(Command)、责任链模式(Chain ...
Template Method模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。这种模式常用于定义算法的基本框架,但允许子类修改...
这些模式包括但不限于单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)、...策略模式、模板方法模式(Template Method)、访问者模式(Visitor)等...
4. **行为型模式**:如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、命令模式(Command)、迭代器模式(Iterator)、访问者模式(Visitor)、责任链模式(Chain of ...
3. 行为型模式:如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、命令模式(Command)、责任链模式(Chain of Responsibility)、备忘录模式(Memento...
13. 模板方法模式(Template Method Pattern):使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 14. 命令模式(Command Pattern):将一个请求封装为一个对象,从而使你可用不同的请求对客户端...
行为型模式关注对象间如何交互,如观察者(Observer)、策略(Strategy)和模板方法(Template Method)等。 源码中可能包含以下设计模式的应用: 1. **单例模式**(Singleton):确保一个类只有一个实例,并提供...
模板方法模式(Template Method)定义了一个操作中的算法骨架,而将一些步骤延迟到子类中;访问者模式(Visitor)定义了一个访问结构元素的接口,并为该结构的每个类都提供了一个访问者类。 《GOF设计模式双语版》...
1. **Template Method模式**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2. **Strategy模式**:定义了一系列的算法,并将每一个...
模板方法模式(Template Method)定义操作中的算法骨架,而将一些步骤延迟到子类中;还有职责链模式(Chain of Responsibility),使得多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合。 4. ...
而无需暴露其底层表示,模版方法模式(Template Method)定义操作的框架,让子类填充具体步骤,观察者模式(Observer)定义对象间的一对多依赖关系,当一个对象的状态改变时,所有依赖于它的对象都会得到通知并自动...
行为型模式则关注对象之间的交互和职责分配,如观察者模式(Observer)、模板方法模式(Template Method)、命令模式(Command)、迭代器模式(Iterator)、策略模式(Strategy)、状态模式(State)、访问者模式...
13. 模板方法模式(Template Method Pattern),在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。 14. 命令模式(Command Pattern),将请求封装为对象,从而使你可用不同的请求对客户端进行参数化。 15...
如工厂模式(Factory Method)、抽象工厂模式(Abstract Factory)、单例模式(Singleton)、建造者模式(Builder)、原型模式(Prototype)、...Strategy)、模板方法模式(Template Method)以及访问者模式(Visitor)...