`
suhongliang5332
  • 浏览: 23714 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

模板模式(Template Method)

 
阅读更多

1.模板模式是类的行为模式。模板模式是基于继承的代码复用的基本技术,模板方法模式的结构和用法也是面向对象设计的核心。

2.模板模式的角色

   一)抽象模板角色:

          1)定义了一个或多个抽象操作,以便让子类实现。这些抽象操作叫做基本操作,他们是一个顶级逻辑的

               组成步骤。

          2)定义并实现一个模板方法。这个模板方法一般是一个具体的方法,它给出了顶级逻辑的骨架,而逻辑

               的组成步骤在相应的抽象操作中,推迟到子类中实现。顶级逻辑也有可能调用一些具体的方法。

   二)具体模板角色

          1)实现父类所定义的一个或者多个抽象方法,它们是一个顶级逻辑的组成步骤。

          2)每一个抽象模板角色都可以有任意多个具体模板角色与之对应,而每一个具体模板角色都可以给出这

               些抽象方法(也就是顶级逻辑的组成步骤)的不同实现,从而使得顶级逻辑的实现各不相同。

3.设计理念:尽量减少必须由子类置换掉的基本方法的数目。

4.需要注意的地方

          1)默认的钩子方法:由抽象类提供声明,并提供默认的实现,可以有子类置换掉,以扩展父类。主要

                就不必像接口那样,必须实现所有接口,只需要实现必要接口,和修改特殊方法就可以了

          2)命名规则:钩子方法都必须是用do开始的

          3)建立取值方法(钩子方法,只返回值),把状态声明推迟到子类实现。

          4)同时请参考重构原则博客

分享到:
评论
2 楼 suhongliang5332 2013-02-07  
   
1 楼 suhongliang5332 2013-02-07  
   

相关推荐

    设计模式C++学习之模板方法模式(Template Method)

    在这个例子中,`AbstractClass`是模板类,定义了`templateMethod`模板方法,它调用了`primitiveOperation1`、`primitiveOperation2`以及组件(Component)的`operation`方法。`ConcreteComponentA`和`...

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

    在这个例子中,`AbstractClass`定义了`templateMethod`模板方法,其中`step1()`是具体实现,而`step2()`和`step3()`作为抽象方法由`ConcreteClass1`和`ConcreteClass2`这两个具体类来实现。这样,不同的具体类可以...

    Template(模板模式)

    模板模式是一种行为设计模式,它使你能在不破坏封装性的前提下,定义对象间的一系列基本操作,并在子类中实现这些操作的具体步骤。在模板模式中,一个抽象类公开定义了执行它的方法的方式,而将具体实现延迟到子类中...

    template-method-demo 模板方法示例

    在"template-method-demo"这个示例中,我们可以预见到它将展示如何在Java中应用模板方法模式。这个压缩包可能包含以下内容: 1. 一个抽象类(例如:`AbstractClass`),它定义了模板方法。在这个类中,可能会有一个...

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

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

    TemplateMethod.rar

    标题“TemplateMethod.rar”暗示了这个压缩包包含的是关于Qt平台上实现模板方法设计模式的示例代码。Qt是一个跨平台的应用程序开发框架,常用于创建GUI程序,但也可用于非图形化的后台服务。 描述中的“模板方法...

    C++设计模式课件3_Template Method_模板方法.pdf

    ### C++设计模式课件3_Template Method_模板方法 #### 模板方法设计模式解析 模板方法模式(Template Method Pattern)是一种行为型设计模式,它允许我们定义算法的骨架,并将部分步骤推迟到子类中实现。这种模式...

    C++设计模式代码资源3_Template Method_模板方法.zip

    "模板方法"(Template Method)是设计模式中的一个经典概念,它属于行为设计模式,主要用在父类中定义一个算法的框架,允许子类在这个框架内重定义特定的步骤。这个模式通常用于代码复用和保持代码结构的一致性。 ...

    TemplateMethod 模式与代码重构

    TemplateMethod(模板方法)设计模式是一种行为设计模式,它在面向对象编程中扮演着重要的角色。这个模式允许我们在抽象类中定义一个算法的框架,同时允许子类在不改变算法结构的情况下重写算法中的特定步骤。通过...

    TemplateMethod.zip

    这个压缩包"TemplateMethod.zip"包含了关于C++实现模板方法设计模式的代码示例。 模板方法模式的核心思想是定义一个操作中的算法骨架,而将一些步骤延迟到子类中。它允许子类不改变一个算法的结构即可重定义该算法...

    20-Template Method.rar

    模板方法(Template Method)设计模式是一种行为型设计模式,它在面向对象编程中扮演着重要的角色。这个模式允许我们定义一个操作中的算法骨架,而将一些步骤延迟到子类中。这样,子类可以不改变一个算法的结构即可...

    模板模式课件及代码-极客学院

    模板模式是一种行为设计模式,它在面向对象编程中扮演着重要的角色。这个模式定义了算法的骨架,并允许子类在不改变结构的情况下重定义某些步骤。模板方法模式遵循了“开闭原则”,即对扩展开放,对修改关闭,使得...

    设计模式专题之(十三)模板模式---设计模式模板模式示例代码(python--c++)

    模板模式是一种行为设计模式,它使你能在不破坏封装性的前提下,定义执行算法的框架,而将一些步骤延迟到子类中。这样,你就能创建一个可复用的框架,将具体步骤留给子类来实现。这个模式的核心思想是抽象类定义了一...

    C++设计模式之模板方法模式(TemplateMethod)

    模板方法模式是面向对象设计模式中的一种,它属于行为模式,主要用来定义对象间的一系列操作顺序,而将一些步骤的实现延迟到子类中。这样可以使得子类不改变算法的结构即可重定义该算法的某些特定步骤,从而实现多态...

    java设计模式-模板模式

    3. **模板方法(Template Method)**:这是在抽象类中定义的方法,它调用了一个或多个钩子方法(即抽象方法或可选的具体方法)。模板方法执行整体算法的顺序,并且通常在最后调用钩子方法以完成算法的定制部分。 4....

    TemplateMethod Pattern.unitypackage

    TemplateMethod Pattern.unitypackage是一个模板方法模式的小栗子。

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

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

    模版方法模式TemplatePattern

    2. 模板方法(Template Method):这是一个具体的方法,定义了算法的骨架。这个方法由抽象类实现,它调用了基本方法来执行特定的步骤。模板方法通常声明为final,防止子类重写其结构。 3. 基本方法(Primitive ...

    设计模式-模板方法模式ppt

    - **抽象类(Abstract Class)**:包含一个或多个抽象方法,并且有一个模板方法(template method)。模板方法通常被声明为final,这意味着它不能被子类覆盖。 - **具体操作(Concrete Operations)**:在抽象类中...

Global site tag (gtag.js) - Google Analytics