《GOF设计模式》—模板方法(TEMPLATE METHOD)—Delphi源码示例:模板方法接口
来源:互联网 发布:知乎2015书单 编辑:程序博客网 时间:2024/06/11 23:51
示例:模板方法接口
说明:
(1)、定义
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
(2)、结构
AbstractClass(抽象类):定义抽象的原语操作(primitive operation),具体的子类将重定义它们以实现一个算法的各步骤;实现一个模板方法,定义一个算法的骨架。该模板方法不仅调用原语操作,也调用定义在AbstractClass或其他对象中的操作。
ConcreteClass(具体类):实现原语操作以完成算法中与特定子类相关的步骤。
代码:
unit uTemplateMethod;
interface
uses
Dialogs;
type
TAbstractClass = class
protected
procedure PrimitiveOperation1; virtual;
procedure PrimitiveOperation2; virtual;
public
procedure TemplateMethod;
end;
TConcreteClass = class(TAbstractClass)
protected
procedure PrimitiveOperation1; override;
procedure PrimitiveOperation2; override;
end;
procedure Test;
implementation
procedure Test;
var
AObject: TAbstractClass;
begin
AObject := TConcreteClass.Create;
AObject.TemplateMethod;
AObject.Free;
end;
procedure TAbstractClass.PrimitiveOperation1;
begin
end;
procedure TAbstractClass.PrimitiveOperation2;
begin
end;
procedure TAbstractClass.TemplateMethod;
begin
PrimitiveOperation1;
PrimitiveOperation2;
end;
procedure TConcreteClass.PrimitiveOperation1;
begin
ShowMessage('1');
end;
procedure TConcreteClass.PrimitiveOperation2;
begin
ShowMessage('2');
end;
end.
- 《GOF设计模式》—模板方法(TEMPLATE METHOD)—Delphi源码示例:模板方法接口
- 《GOF设计模式》—模板方法(TEMPLATE METHOD)—Delphi源码示例:文档
- 《GOF设计模式》—模板方法(TEMPLATE METHOD)—Delphi源码示例:绘图
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:工厂方法接口
- GOF设计模式之TEMPLATE METHOD(模板方法)
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:参数化工厂方法
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:延迟初始化对象
- 设计模式——模板方法模式【Template Method Pattern】
- 设计模式——模板方法模式(Template Method)
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:基于工厂方法的迷宫
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:基于工厂方法的迷宫
- 《GOF设计模式》—工厂方法(Factory Method)—Delphi源码示例:基于工厂方法的迷宫
- Java设计模式之 —— 模板方法(Template Method)
- Java设计模式 —— 模板方法(Template Method)
- C++设计模式——模板方法(Template Method)
- Java设计模式之 —— 模板方法(Template Method)
- 设计模式(22)——模板方法 Template Method
- Java设计模式—模板方法(Template Method)
- jquery之选择将被操作的元素(通过位置选择)
- c++ 左值与右值
- 如何查看静态库内容 Unix/Linux
- C/C++的左值和右值
- MII、GMII、RMII、SGMII、XGMII
- 《GOF设计模式》—模板方法(TEMPLATE METHOD)—Delphi源码示例:模板方法接口
- iptables 应用初探(nat+三层访问控制)
- As中获取对象类名的常用方法
- 永久优化:微软技术面试100题第1-10题答案修正与优化
- eclipse安装hadoop插件
- JDK ByteBuffer & MINA IoBuffer 总结
- c++中的智能指针实现
- eclipse 汉化包下载安装
- 浅析C++中的序列点