Delphi 设计模式:《HeadFirst设计模式》Delphi代码
一、一个叫声接口和几只鸭子
1、从一个叫声接口开始
{《HeadFirst设计模式》Delphi代码之模式小结 }
{ 一个叫声接口 }
{ 编译工具:Delphi2010 for win32 }
{ E-Mail :xshlife@163.com }
unit uQuackable;
interface
type
IQuackable = interface(IInterface)
procedure Quack;
end;
implementation
end.
2、几只鸭子实现了该叫声接口。
{《HeadFirst设计模式》Delphi代码之模式小结 }
{ 几只鸭子实现了声接口 }
{ 编译工具:Delphi2010 for win32 }
{ E-Mail :xshlife@163.com }
unit uDuck;
interface
uses
uQuackable;
type
TMallardDuck = class(TInterfacedObject, IQuackable)
public
procedure Quack;
end;
TRedHeadDuck = class(TInterfacedObject, IQuackable)
public
procedure Quack;
end;
TDuckCall = class(TInterfacedObject, IQuackable)
public
procedure Quack;
end;
TRubberDuck = class(TInterfacedObject, IQuackable)
public
procedure Quack;
end;
implementation
{ TMallardDuck }
procedure TMallardDuck.Quack;
begin
Writeln('Quack');
end;
{ TRedHeadDuck }
procedure TRedHeadDuck.Quack;
begin
Writeln('Quack');
end;
{ TDuckCall }
procedure TDuckCall.Quack;
begin
Writeln('Kwak');
end;
{ TRubberDuck }
procedure TRubberDuck.Quack;
begin
Writeln('Squeak');
end;
end.
3、叫声接口为鸭鸣器提供服务。叫声接口与鸭鸣器的关系比与它的实现类更密切。
{《HeadFirst设计模式》Delphi代码之模式小结 }
{ 鸭鸣模拟器 }
{ 编译工具:Delphi2010 for win32 }
{ E-Mail :xshlife@163.com }
unit uDuckSimulator;
interface
uses
uQuackable, uDuck;
type
TDuckSimulator = class(TObject)
private
procedure Simulate(aDuck: IQuackable); overload;
public
procedure Simulate; overload;
end;
implementation
{ TDuck
相关文档:
图像旋转,是指按照给定的角度,计算出图像每个像素坐标点在新图像上的坐标位置,从而实现整个图像坐标变换的图像处理手段。其像素坐标的变换公式为:
(1)、x' = x * cos(angle) + y * sin(andle)
y' = ......
第一章 DELPHI的原子世界
第二章 DELPHI与WIN32时空
第三章 多线程
第四章 接口
第五章 包
第六章 事件与消息
第七章 组织你的模块
第八章 探索数据库
第九章 多层体系结构
第十章 操作界面与操作逻辑
第十一章 面向对象数据库基础
第三章&n ......
Delphi2010集成了fastMM,这回大家调试程序是的时候可以方便地检查内存泄露了。
使用方法如下:
在project中,添加一行 ReportMemoryLeaksOnShutdown := DebugHook<>0;
DebugHook<>0 目的是保证单独运行exe文件不会弹出内存泄露框,源码可以不用注释掉此行
program Project1;
uses
Forms,
......
本文的线性亮度/对比度调整方法是在《改进的图像线性亮度调整方法》一文中线性亮度调整方法与《Delphi图像处理 -- Photoshop图像亮度/对比度调整》中的对比度调整方法基础上形成的,其原理和特点可参见这2篇文章:
过程定义:
// 线性调整亮度,Value亮度值
procedure ImageL ......
本文是基于《GDI+在Delphi程序的应用 – Photoshop色相/饱和度/明度功能》一文的BASM实用性过程,有关实现原理可参见《GDI+ 在Delphi程序的应用 -- 图像饱和度调整》和《GDI+ 在Delphi程序的应用 -- 仿Photoshop的明度调整》,纯PAS实现代码和测试例子代码见《GDI+在Delphi程序的应用 – Phot ......