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

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图像处理 -- Photoshop图像亮度/对比度调整》中的对比度调整方法基础上形成的,其原理和特点可参见这2篇文章:
    过程定义:
// 线性调整亮度,Value亮度值
procedure ImageL ......

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

1. 抽象工厂的产品
{《HeadFirst设计模式》工厂模式之抽象工厂 }
{ 抽象工厂的产品 }
{ 编译工具:Delphi7.0 }
{ E-Mail :xshlife@163.com }

unit uPizzaIngredient;

interface

type
TDough = class(TObject)
end;

TThinCrustDough ......

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

      容器的主要职责有两个:存放元素和浏览元素。根据单一职责原则(SRP)要将二者分开,于是将浏览功能打包封装就有了迭代器。
      用迭代器封装对动态数组的遍历:
1.容器中的元素类
{《HeadFirst设计模式》之迭代器模式 }
{ 容器中的元素类 ......

delphi 多态

 什么是多态,字面意思就是“多种形态”,用对象来讲就是子类继承基类,而不同的子类又分别对基类进行功能的扩展。
多态在Object Pascal中是通过虚方法实现的(Virtual Method),在Object Pascal中基类的虚方法是可以被派生类覆盖(Override)的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号