Delphi 设计模式:《HeadFirst设计模式》Delphi7代码
1.策略类
{《HeadFirst设计模式》之策略模式 }
{ 本单元中的类为策略类 }
{ 编译工具: Delphi7.0 }
{ E-Mail : xshlife@163.com }
unit uStrategy;
interface
type
{飞行接口,及其实现类 }
IFlyBehavior = Interface(IInterface)
procedure Fly;
end;
TFlyWithWings = class(TInterfacedObject, IFlyBehavior)
public
procedure Fly;
end;
TFlyNoWay = class(TInterfacedObject, IFlyBehavior)
public
procedure Fly;
end;
TFlyRocketPowered = class(TInterfacedObject, IFlyBehavior)
public
procedure Fly;
end;
{叫声接口,及其实现类}
IQuackBehavior = Interface(IInterface)
procedure Quack;
end;
TQuack = class(TInterfacedObject, IQuackBehavior)
public
procedure Quack;
end;
TMuteQuack = class(TInterfacedObject, IQuackBehavior)
public
procedure Quack;
end;
TSqueak = class(TInterfacedObject, IQuackBehavior)
public
procedure Quack;
end;
implementation
{ TFlyWithWings }
procedure TFlyWithWings.Fly;
begin
Writeln('I am flying!');
end;
{ TFlyNoWay }
procedure TFlyNoWay.Fly;
begin
Writeln('I can not fly!');
end;
{ TFlyRocketPowered }
procedure TFlyRocketPowered.Fly;
begin
Writeln('I am flying with a rocket!');
end;
{ TQuack }
procedure TQuack.Quack;
begin
Writeln('Quack');
end;
{ TMuteQuack }
procedure TMuteQuack.Quack;
begin
Writeln('<Silence>');
end;
{ TSqueak }
procedure TSqueak.Quack;
begin
Writeln('Squeak');
end;
end.
2.策略的用户
{《HeadFirst设计模式》之策略模式 }
{ 本单元中的类为策略的用户, }
{ 一般策略模式中的上下文接口已包含在用户类中。}
{ 编译工具: Delphi7.0 }
{ E-Mail : xshlife@163.com }
unit uDuck;
interface
uses
uStrategy;
type
{ 鸭子抽象类 }
TDuck
相关文档:
第一章 DELPHI的原子世界
第二章 DELPHI与WIN32时空
第三章 多线程
第四章 接口
第五章 包
第六章 事件与消息
第七章 组织你的模块
第八章 探索数据库
第九章 多层体系结构
第十章 操作界面与操作逻辑
第十一章 面向对象数据库基础
空 ......
Delphi 2010正式版下载(RAD Studio 2010下载)
在8月26日正式发布了RAD Studio 2010,就是我们所谓的Delphi 2010。RAD Studio 2010包含Delphi、C++ Builder和Delphi Prism等。 RAD Studio 2010 的新功能主要在于:增强的 IDE和可视化组件库 (VCL) 框架和基础的编译器以及其他各项工具,这使得你构建那些跨越所有的数据源和 ......
一、一个叫声接口和几只鸭子
1、从一个叫声接口开始
{《HeadFirst设计模式》Delphi代码之模式小结 }
{ 一个叫声接口 }
{ 编译工具:Delphi2010 for win32 }
{ E-Mail :xshlife@163.com }
unit uQuackable;
interface
type
IQuackable = in ......
模板方法模式定义了一个算法骨架,允许子类对算法的某个或某些步骤进行重写(override)。
1.CoffeineBeverageWithHook
{《HeadFirst设计模式》之模板方法模式 }
{ 编译工具: Delphi7.0 }
{ E-Mail : xshlife@163.com }
unit uCoffeineBeverageWithHook;
interface
uses
SysUti ......
容器的主要职责有两个:存放元素和浏览元素。根据单一职责原则(SRP)要将二者分开,于是将浏览功能打包封装就有了迭代器。
用迭代器封装对动态数组的遍历:
1.容器中的元素类
{《HeadFirst设计模式》之迭代器模式 }
{ 容器中的元素类 ......