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
相关文档:
设置图像关键颜色,使图像的某种或某个范围的颜色成为透明色,是图片合成、动画显示中经常用的图像处理手段。下面是实现代码:
过程定义:
// 设置色键(透明范围)。colorLow 低色键值; colorHigh 高色键值
// 当像素A、R、G、B值同时大于等于colorLow和小于等于colorHigh时为透明色
procedu ......
推荐给大家[url=DELPHI深度探索 (第2版)PDF电子书][/url]
因为需要前几天在网上搜搜过这本书书,可没有,源码倒是有,今天打开经常去的网站,居然发现提供下载了,这个网站自己差不多每天都要打开看看,这几天忙糊涂了,居然没有看到,在这推荐给大家,能下载的,速度很快。
[url=http://www.delphifans.com/Soft ......
1. 抽象工厂的产品
{《HeadFirst设计模式》工厂模式之抽象工厂 }
{ 抽象工厂的产品 }
{ 编译工具:Delphi7.0 }
{ E-Mail :xshlife@163.com }
unit uPizzaIngredient;
interface
type
TDough = class(TObject)
end;
TThinCrustDough ......
继承是为了表现类与类之间“是一种”关系,是多态存在的基础,继承是面象对象必不可少的基础,只支持封装而不支持继承的语言只能称为“基于对象”(Object-Based)面非面向对象“Object-Oriented”;
Object Pascal只支持单继承,也就是一个派生类只能有一个基类
但可以实现多个接口 ......
容器的主要职责有两个:存放元素和浏览元素。根据单一职责原则(SRP)要将二者分开,于是将浏览功能打包封装就有了迭代器。
用迭代器封装对动态数组的遍历:
1.容器中的元素类
{《HeadFirst设计模式》之迭代器模式 }
{ 容器中的元素类 ......