Delphi Éè¼ÆÄ£Ê½£º¡¶HeadFirstÉè¼ÆÄ£Ê½¡·Delphi7´úÂë
1.±»×°ÊÎÕß
{¡¶HeadFirstÉè¼ÆÄ£Ê½¡·Ö®×°ÊÎģʽ }
{ ±¾µ¥ÔªÖеÄÀàΪ±»×°ÊÎÕß }
{ ±àÒ빤¾ß: Delphi7.0 }
{ E-Mail : xshlife@163.com }
unit uComponent;
interface
type
TBeverage = class(TObject) //³éÏóÒûÁÏÀà
protected
FDescription: String;
public
function GetDescription: String; virtual;
function Cost: Double; virtual; abstract;
end;
TEspresso = class(TBeverage) //Ũ¿§·ÈÒûÁÏÀà
public
constructor Create;
function Cost: Double; override;
end;
THouseBlend = class(TBeverage) //¾ßÌåHouseBlendÒûÁÏÀà
public
constructor Create;
function Cost: Double; override;
end;
TDarkRoast = class(TBeverage) //¾ßÌåDarkRoastÒûÁÏÀà
public
constructor Create;
function Cost: Double; override;
end;
implementation
{ TBeverage }
function TBeverage.GetDescription: String;
begin
Result := FDescription;
end;
{ TEspresso }
function TEspresso.Cost: Double;
begin
Result := 1.99;
end;
constructor TEspresso.Create;
begin
FDescription := 'Espresso';
end;
{ THouseBlend }
function THouseBlend.Cost: Double;
begin
Result := 0.89;
end;
constructor THouseBlend.Create;
begin
FDescription := 'House Blend Coffee';
end;
{ TDarkRoast }
function TDarkRoast.Cost: Double;
begin
Result := 0.99;
end;
constructor TDarkRoast.Create;
begin
FDescription := 'Dark Roast Coffee';
end;
end.
2.×°ÊÎÕß
{¡¶HeadFirstÉè¼ÆÄ£Ê½¡·Ö®×°ÊÎģʽ }
{ ×°ÊÎÕ߼ȼ̳ÐÓÖ×éºÏ±»×°ÊÎÕß¡£¼Ì³Ð }
{ ÔÚÕâÀïµÄÒâͼÖ÷ÒªÊÇÀàÐÍÆ¥Åä —— }
{ Óë±»×°ÊÎÕßÊÇͬһÀàÐÍ¡£ }
{ ±àÒ빤¾ß: Delphi7.0 }
{ E-Mail : xshlife@163.com }
unit uDecorator;
interface
uses
uComponent;
type
TCondimentDecorator = class(TBeverage) //³éÏó×°ÊÎÕß
end;
TMocha = class(TCondimentDecorator) //¾ßÌå×°ÊÎÕߣºMocha
private
FBeverage: TBever
Ïà¹ØÎĵµ£º
µÚÒ»Õ DELPHIµÄÔ×ÓÊÀ½ç
µÚ¶þÕ DELPHIÓëWIN32ʱ¿Õ
µÚÈýÕ ¶àÏß³Ì
µÚËÄÕÂ ½Ó¿Ú
µÚÎåÕÂ °ü
µÚÁùՠʼþÓëÏûÏ¢
µÚÆßÕ ×éÖ¯ÄãµÄÄ£¿é
µÚ°ËÕ ̽Ë÷Êý¾Ý¿â
µÚ¾ÅÕ ¶à²ãÌåϵ½á¹¹
µÚʮՠ²Ù×÷½çÃæÓë²Ù×÷Âß¼
µÚʮһÕÂ ÃæÏò¶ÔÏóÊý¾Ý¿â»ù´¡
µÚÊ®Ò»Õ ......
ͼÏñµÄÖÐÖµÂ˲¨£¬¾ÍÊÇÔÚÒÔijһÏñËØÎªÖÐÐĵÄn½×ÏñËØ¾ØÕóÖУ¬ÕÒ³öR¡¢G¡¢B¸÷·ÖÁ¿µÄÖмäÖµÀ´·Ö±ðÌæ´ú¸ÃÏñËØµÄRGBÖµ£¬´Ó¶ø´ïµ½¶ÔͼÏñÔëÉùÂ˲¨µÄÄ¿µÄ¡£ÕâÀïµÄÖмäÖµ²¢·ÇÏñËØ¾ØÕóR¡¢G¡¢B¸÷·ÖÁ¿µÄµÄËãÊõƽ¾ùÖµ£¬¶øÊÇÏñËØ¾ØÕóR¡¢G¡¢B¸÷·ÖÁ¿ÅÅÐòºóµÄÖÐλÊýÖµ¡£
ÏÂÃæÊÇDelphiͼÏñÖÐÖµÂ˲¨µÄÊµÏ ......
¼Ì³ÐÊÇΪÁ˱íÏÖÀàÓëÀàÖ®¼ä“ÊÇÒ»ÖÖ”¹ØÏµ£¬ÊǶà̬´æÔڵĻù´¡£¬¼Ì³ÐÊÇÃæÏó¶ÔÏ󱨲»¿ÉÉٵĻù´¡£¬Ö»Ö§³Ö·â×°¶ø²»Ö§³Ö¼Ì³ÐµÄÓïÑÔÖ»ÄܳÆÎª“»ùÓÚ¶ÔÏ󔣨Object-Based£©Ãæ·ÇÃæÏò¶ÔÏó“Object-Oriented”;
Object PascalÖ»Ö§³Öµ¥¼Ì³Ð£¬Ò²¾ÍÊÇÒ»¸öÅÉÉúÀàÖ»ÄÜÓÐÒ»¸ö»ùÀà
µ«¿ÉÒÔʵÏÖ¶à¸ö½Ó¿Ú ......
ʲôÊǶà̬£¬×ÖÃæÒâ˼¾ÍÊÇ“¶àÖÖÐÎ̬”£¬ÓöÔÏóÀ´½²¾ÍÊÇ×ÓÀà¼Ì³Ð»ùÀ࣬¶ø²»Í¬µÄ×ÓÀàÓÖ·Ö±ð¶Ô»ùÀà½øÐй¦ÄܵÄÀ©Õ¹¡£
¶à̬ÔÚObject PascalÖÐÊÇͨ¹ýÐé·½·¨ÊµÏֵģ¨Virtual Method£©,ÔÚObject PascalÖлùÀàµÄÐé·½·¨ÊÇ¿ÉÒÔ±»ÅÉÉúÀา¸Ç£¨Override£©µÄ ......