- 浏览: 18306 次
- 性别:
- 来自: 西安
最新评论
模板方法模式:在一个方法中定义一个算法的骨架,而将一些实现步骤延迟到子类中。
模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
AbstractClass.java
package com.flyingh.abs; public abstract class AbstractClass { public final void templateMethod() { step1(); step2(); step3(); step4(); hoop(); } private void step1() { // TODO Auto-generated method stub System.out.println("step1"); } public abstract void step2(); public abstract void step3(); private void step4() { // TODO Auto-generated method stub System.out.println("step4"); } public void hoop() { // TODO Auto-generated method stub } }
ConcreteClassA.java
package com.flyingh.con; import com.flyingh.abs.AbstractClass; public class ConcreteClassA extends AbstractClass { @Override public void step2() { // TODO Auto-generated method stub System.out.println("a.step2()"); } @Override public void step3() { // TODO Auto-generated method stub System.out.println("a.step3()"); } }
ConcreteClassB.java
package com.flyingh.con; import com.flyingh.abs.AbstractClass; public class ConcreteClassB extends AbstractClass { @Override public void step2() { // TODO Auto-generated method stub System.out.println("b.step2()"); } @Override public void step3() { // TODO Auto-generated method stub System.out.println("b.step3()"); } @Override public void hoop() { // TODO Auto-generated method stub System.out.println("b.hoop()"); } }
Client.java
package com.flyingh.client; import com.flyingh.abs.AbstractClass; import com.flyingh.con.ConcreteClassA; import com.flyingh.con.ConcreteClassB; public class Client { public static void main(String[] args) { AbstractClass abs = new ConcreteClassA(); abs.templateMethod(); System.out.println("*******************"); AbstractClass abs2 = new ConcreteClassB(); abs2.templateMethod(); } }
程序运行结果如下:
step1 a.step2() a.step3() step4 ******************* step1 b.step2() b.step3() step4 b.hoop()
发表评论
文章已被作者锁定,不允许评论。
-
Interpreter
2011-11-24 21:19 839Interpreter Pattern:其意图是给定一个语言, ... -
Visitor
2011-11-24 17:37 659Visitor Pattern:表示一个作用于某对象结构中的各 ... -
Mediator
2011-11-24 16:22 663Mediator Pattern: 用一 ... -
Prototype
2011-11-24 11:32 605Prototype Pattern:就是通过复制现在已经存在的 ... -
Memento
2011-11-23 21:56 685Memento Pattern:在不破坏封闭的前提下,捕获一个 ... -
Flyweight
2011-11-23 18:38 651享元模式以共享的方式高效地支持大量的细粒度对象. 1).Fl ... -
Builder
2011-11-22 16:38 763Builder Pattern:可以将一个产品的内部表象与产品 ... -
Bridge
2011-11-22 15:05 684桥梁模式的用意是"将抽象化(Abstraction) ... -
Chain Of Responsibility
2011-11-21 23:05 658Chain Of Responsibility Pattern ... -
Abstract Factory
2011-11-21 22:00 644下面以Mac和PC的CPU和RAM为例,代码如下: Cpu. ... -
Proxy
2011-11-18 18:47 661Proxy Pattern:对其他对象提供一种代理以控制对这个 ... -
State
2011-11-18 15:57 678State Pattern:当一个对象的内在状态改变时允许改变 ... -
Composite
2011-11-17 17:09 793Composite Pattern:意图是将对象组合成树形结构 ... -
Iterator
2011-11-16 16:56 890Iterator Pattern:其意图是提供一种方法顺序访问 ... -
Facade
2011-11-15 23:00 596Facade Pattern:为子系统中的各类(或结构与方法) ... -
Adapter
2011-11-15 21:43 630Adapter Pattern:将一个类的接口,转换成客户所期 ... -
Command
2011-11-14 23:06 5731).下面以Boss和Clerk为例: Clerk.java ... -
Factory Method
2011-11-13 20:44 595Simple Factory: 以Fruit为例,以下是实现 ... -
Decorator
2011-11-12 23:09 570装饰者可以在所委托被装饰者的行为之前与/或之后,加上自己的 ... -
Observer
2011-11-12 21:30 600观 察 者 模 式 定义了对象之间的一对多依赖,这样一来 ...
相关推荐
标题“TemplateMethod.rar”暗示了这个压缩包包含的是关于Qt平台上实现模板方法设计模式的示例代码。Qt是一个跨平台的应用程序开发框架,常用于创建GUI程序,但也可用于非图形化的后台服务。 描述中的“模板方法...
这个压缩包"TemplateMethod.zip"包含了关于C++实现模板方法设计模式的代码示例。 模板方法模式的核心思想是定义一个操作中的算法骨架,而将一些步骤延迟到子类中。它允许子类不改变一个算法的结构即可重定义该算法...
在这个例子中,`AbstractClass`是模板类,定义了`templateMethod`模板方法,它调用了`primitiveOperation1`、`primitiveOperation2`以及组件(Component)的`operation`方法。`ConcreteComponentA`和`...
模板方法(Template Method)设计模式是一种行为型设计模式,它在面向对象编程中扮演着重要的角色。这个模式允许我们定义一个操作中的算法骨架,而将一些步骤延迟到子类中。这样,子类可以不改变一个算法的结构即可...
TemplateMethod(模板方法)设计模式是一种行为设计模式,它在面向对象编程中扮演着重要的角色。这个模式允许我们在抽象类中定义一个算法的框架,同时允许子类在不改变算法结构的情况下重写算法中的特定步骤。通过...
### C++设计模式课件3_Template Method_模板方法 #### 模板方法设计模式解析 模板方法模式(Template Method Pattern)是一种行为型设计模式,它允许我们定义算法的骨架,并将部分步骤推迟到子类中实现。这种模式...
在这个例子中,`AbstractClass`定义了`templateMethod`模板方法,其中`step1()`是具体实现,而`step2()`和`step3()`作为抽象方法由`ConcreteClass1`和`ConcreteClass2`这两个具体类来实现。这样,不同的具体类可以...
模板方法模式(Template Method Pattern)在Google Android框架中的应用是一个重要的设计模式实例,它允许开发者定义一个算法骨架,而将一些步骤延迟到子类中。这个模式的关键在于它定义了一个操作中的算法步骤,并...
"模板方法"(Template Method)是设计模式中的一个经典概念,它属于行为设计模式,主要用在父类中定义一个算法的框架,允许子类在这个框架内重定义特定的步骤。这个模式通常用于代码复用和保持代码结构的一致性。 ...
TemplateMethod Pattern.unitypackage是一个模板方法模式的小栗子。
在"template-method-demo"这个示例中,我们可以预见到它将展示如何在Java中应用模板方法模式。这个压缩包可能包含以下内容: 1. 一个抽象类(例如:`AbstractClass`),它定义了模板方法。在这个类中,可能会有一个...
摘要:Template Method模式是比较简单的设计模式之一,但它却是代码复用的一项基本的技术,在类库中尤其重要。变化一直以来都是软件设计的永恒话题,在XP编程中提倡拥抱变化,积极应对。如何更好的去抓住变化点,...
TemplateMethod模式是一种行为设计模式,它允许在定义算法框架的同时,允许子类为算法的特定步骤提供实现。这种模式在C#中广泛应用于创建可扩展的代码结构,使得父类可以控制算法的流程,而具体的操作则由子类来完成...
模板方法模式是一种行为设计模式,它在一个方法中定义算法的骨架,将一些步骤延迟到子类中实现。 具体来说,模板方法模式的关键特点包括: 抽象类:在抽象类中定义一个模板方法,该方法给出了算法的框架。...
在软件设计领域,设计模式是解决常见问题的可重用解决方案。它们是经过验证的、在特定上下文中高效的设计决策,被广泛应用于构建可维护和可扩展的软件系统。本篇将深入探讨“开闭原则”(Open Close Principle,OCP...
模板方法模式(Template Method Pattern)是一种行为设计模式,它允许在定义算法的框架时,将具体步骤延迟到子类中。这种模式的核心在于抽象类,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。子类可以...
void TemplateMethod() { PrimitiveOperation1(); PrimitiveOperation2(); } protected: virtual void PrimitiveOperation1() = 0; // 抽象方法 virtual void PrimitiveOperation2() = 0; // 抽象方法 ...
C++设计模式笔记(03-02) – Template Method_模板方法(下): https://blog.csdn.net/mofan6930/article/details/104383750 参考书籍:《设计模式:可复用面向对象软件的基础》 参考课程:《C++设计模式》-李建忠 ...
void templateMethod() { primitiveOperation1(); primitiveOperation2(); } protected: virtual void primitiveOperation1() = 0; virtual void primitiveOperation2() = 0; }; ``` ```cpp // Template.cpp ...