Template 模式之Delphi实现

原创 2003年03月03日 18:08:00

unit Tpl_meth;

{
Design pattern example -
some simple classes using the Template Method pattern.
}
interface

type
  TAbstractTemplateClass = class(TObject)
  protected
    function Algorithm_StepA: Integer; virtual; abstract;
    function Algorithm_StepB: Integer; virtual; abstract;
    function Algorithm_StepC: Integer; virtual; abstract;
  public
    function Algorithm: Integer;
  end;

  TConcreteClassA = class(TAbstractTemplateClass)
  protected
    function Algorithm_StepA: Integer; override;
    function Algorithm_StepB: Integer; override;
    function Algorithm_StepC: Integer; override;
  end;

  TConcreteClassB = class(TAbstractTemplateClass)
  protected
    function Algorithm_StepA: Integer; override;
    function Algorithm_StepB: Integer; override;
    function Algorithm_StepC: Integer; override;
  end;

implementation

function TAbstractTemplateClass.Algorithm: Integer;
begin
  Result := Algorithm_StepA +
            Algorithm_StepB +
            Algorithm_StepC;
end;

function TConcreteClassA.Algorithm_StepA: Integer;
begin
  Result := 1;
end;

function TConcreteClassA.Algorithm_StepB: Integer;
begin
  Result := 2;
end;

function TConcreteClassA.Algorithm_StepC: Integer;
begin
  Result := 3;
end;

function TConcreteClassB.Algorithm_StepA: Integer;
begin
  Result := 4;
end;

function TConcreteClassB.Algorithm_StepB: Integer;
begin
  Result := 5;
end;

function TConcreteClassB.Algorithm_StepC: Integer;
begin
  Result := 6;
end;

end.

 

/////////////////////////////////////////////////////////////////////////////////

 

unit Unit1;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses tpl_meth;

procedure TForm1.Button1Click(Sender: TObject);
var
  AnAbstractObject: TAbstractTemplateClass;
begin
  AnAbstractObject := TConcreteClassA.Create;
  try
    ShowMessage('Algorithm Result = ' + Inttostr(AnAbstractObject.Algorithm));
  finally
    AnAbstractObject.Destroy;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  AnAbstractObject: TAbstractTemplateClass;
begin
  AnAbstractObject := TConcreteClassB.Create;
  try
    ShowMessage('Algorithm Result = ' + Inttostr(AnAbstractObject.Algorithm));
  finally
    AnAbstractObject.Destroy;
  end;
end;

end.

TemplateMethod模板方法模式之应用

一,定义:模板方法模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。            二,类图:  ...
  • liujiahan629629
  • liujiahan629629
  • 2014年02月22日 19:37
  • 2363

设计模式、用Delphi实现---->Template Method模式

  • zgqtxwd
  • zgqtxwd
  • 2008年05月01日 00:05
  • 127

Singleton模式之Delphi实现

type TSingleton = class(TObject) public A : Integer; class function NewInstance: TObject; ov...
  • largewang
  • largewang
  • 2002年09月19日 09:23
  • 687

設計模式之Template

Template定義:定義一個操作中演算法的骨架,將一些步驟的執行延遲到其子類別中。 其實Java的抽象類別本來就是Template模式,因此使用很普遍。而且很容易理解和使用,我們直接以示例開始: ...
  • arielxp
  • arielxp
  • 2004年06月24日 19:57
  • 1798

設計模式之Template

Template定義:定義一個操作中演算法的骨架,將一些步驟的執行延遲到其子類別中。其實Java的抽象類別本來就是Template模式,因此使用很普遍。而且很容易理解和使用,我們直接以示例開始: ...
  • alex197963
  • alex197963
  • 2007年05月12日 09:23
  • 669

C++设计模式实现--模板(Template)模式

一. 问题 在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架(或通用的应用算法)是相同的。Temp...
  • L_Andy
  • L_Andy
  • 2014年06月13日 16:00
  • 1254

电子书下载:Delphi模式编程

下载:http://www.400gb.com/file/54681303
  • MaxWoods
  • MaxWoods
  • 2014年01月17日 20:58
  • 2003

URI Template Patterns with Regular Expressions

考虑这个URI:/spring-web/spring-web-3.0.5.jar,你怎么样去把它分隔成多个部分呢?...
  • u010381633
  • u010381633
  • 2015年08月12日 22:06
  • 476

Strategy模式和Template Method模式的异同浅析

一、Strategy模式 1. 特点说明: 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。适用场景: 许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为...
  • aheroofeast
  • aheroofeast
  • 2011年08月19日 20:16
  • 3105

模板方法模式(Template Method) - 最易懂的设计模式解析

前言今天我来全面总结一下Android开发中最常用的设计模式 - 模板方法模式。 其他设计模式介绍 1分钟全面了解“设计模式” 单例模式(Singleton) - 最易懂的设计模式解析...
  • carson_ho
  • carson_ho
  • 2017年02月07日 15:37
  • 5139
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Template 模式之Delphi实现
举报原因:
原因补充:

(最多只允许输入30个字)