易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码

1. 命令的接受者
unit uReceiveObject;
interface
type
TLight = class(TObject)
public
procedure Open;
procedure Off;
end;
TGarageDoor = class(TObject)
public
procedure Up;
procedure Down;
procedure Stop;
procedure LightOn;
procedure LightOff;
end;
implementation
{ TLight }
procedure TLight.Off;
begin
Writeln('');
end;
procedure TLight.Open;
begin
Writeln('Light is On.');
end;
{ TGarageDoor }
procedure TGarageDoor.Down;
begin
Writeln('');
end;
procedure TGarageDoor.LightOff;
begin
Writeln('');
end;
procedure TGarageDoor.LightOn;
begin
Writeln('');
end;
procedure TGarageDoor.Stop;
begin
Writeln('');
end;
procedure TGarageDoor.Up;
begin
Writeln('GarageDoor is Open.');
end;
end.

2.命令对象
unit uCommandObject;
interface
uses
uReceiveObject;
type
TCommand = class(TObject)
public
procedure Execute; virtual; abstract;
end;
TLightOnCommand = class(TCommand)
private
FLight: TLight;
public
constructor Create(aLight: TLight);
procedure Execute; override;
end;
TGarageDoorOpenCommand = class(Tcommand)
private
FGarageDoor: TGarageDoor;
public
constructor Create(aGarageDoor: TGarageDoor);
procedure Execute; override;
end;
implementation
{ TLightOnCommand }
constructor TLightOnCommand.Create(aLight: TLight);
begin
FLight := aLight;
end;
procedure TLightOnCommand.Execute;
begin
FLight.Open;
end;
{ TGarageDoorOpenCommand }
constructor TGarageDoorOpenCommand.Create(aGarageDoor: TGarageDoor);
begin
FGarageDoor := aGarageDoor;
end;
procedure TGarageDoorOpenCommand.Execute;
begin
FGarageDoor.Up;
end;
end.

3.命令的请求者即发出者
unit uSimpleRemoteControl;
interface
uses
uCommandObject;
type
TSimpleRemoteControl = class(TObject)
private
FSlot: TCommand;
public
procedure SetCommand(aCommand: TCommand);
procedure ButtonWasPressed;
end;
implementation


相关文档:

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码

1. 产品类
{《HeadFirst设计模式》工厂模式之简单工厂 }
{ 产品类 }
{ 编译工具 :Delphi7.0 }
{ 联系方式 :xshlife@163.com }

unit uProducts;

interface

type
TPizza = class(TObject)
public
procedure Prepare; virt ......

delphi 友元类

 在一个单元中声明的多个类互为友元类
type
TMyClass = class
GUID: string;
Name: string;
bSex: Boolean;
Tel : string;
end;
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedu ......

delphi 继承类

 继承是为了表现类与类之间“是一种”关系,是多态存在的基础,继承是面象对象必不可少的基础,只支持封装而不支持继承的语言只能称为“基于对象”(Object-Based)面非面向对象“Object-Oriented”;
Object Pascal只支持单继承,也就是一个派生类只能有一个基类
但可以实现多个接口 ......

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码

模板方法模式定义了一个算法骨架,允许子类对算法的某个或某些步骤进行重写(override)。
1.CoffeineBeverageWithHook
{《HeadFirst设计模式》之模板方法模式 }
{ 编译工具: Delphi7.0 }
{ E-Mail : xshlife@163.com }

unit uCoffeineBeverageWithHook;

interface

uses
SysUti ......

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码

1. 命令的接收者
{《HeadFirst设计模式》之命令模式 }
{ 本单元中的类为命令的接收者 }
{ 编译工具 :Delphi7.0 }
{ 联系方式 :xshlife@163.com }

unit uReceiveObject;

interface

type
TLight = class(TObject)
private
FLocation: String;
public
constru ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号