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ÖÖ»òij¸ö·¶Î§µÄÑÕÉ«³ÉΪ͸Ã÷É«£¬ÊÇͼƬºÏ³É¡¢¶¯»ÏÔʾÖо³£ÓõÄͼÏñ´¦ÀíÊֶΡ£ÏÂÃæÊÇʵÏÖ´úÂ룺
¹ý³Ì¶¨Ò壺
// ÉèÖÃÉ«¼ü£¨Í¸Ã÷·¶Î§£©¡£colorLow µÍÉ«¼üÖµ; colorHigh ¸ßÉ«¼üÖµ
// µ±ÏñËØA¡¢R¡¢G¡¢Bֵͬʱ´óÓÚµÈÓÚcolorLowºÍСÓÚµÈÓÚcolorHighʱΪ͸Ã÷É«
procedu ......
µ±È»Óû§ÒªÏëͨ¹ýÊý¾Ýä¯ÀÀ²¿¼þ±à¼ÐÞ¸ÄÊý¾Ý¿â±íÖеļǼ×Ö¶Îʱ£¬»¹ÒªÊܵ½ÆäËüÒòËØµÄÖÆÔ¼¡£³ýÁËÊý¾Ýä¯ÀÀ²¿¼þ±¾ÉíµÄReadOnlyÊôÐÔÉèÖÃΪFalseÍ⣬»¹ÒªÉèÖÃÆäÏàÓ¦µÄ×ֶβ¿¼þºÍÊý¾Ý¼¯²¿¼þµÄCanModifyÊôÐÔTrueÐÔ£»ÉèÖÃTDataSource²¿¼þµÄAutoEditÊôÐÔΪTrue£¬Èç¹ûÊý¾Ý¿â±íÊÇSQLÊý¾Ý¿â·þÎñÆ÷ÖеÄÊý¾ ......
1. ²úÆ·Àà
{¡¶HeadFirstÉè¼ÆÄ£Ê½¡·¹¤³§Ä£Ê½Ö®¼òµ¥¹¤³§ }
{ ²úÆ·Àà }
{ ±àÒ빤¾ß £ºDelphi7.0 }
{ ÁªÏµ·½Ê½ £ºxshlife@163.com }
unit uProducts;
interface
type
TPizza = class(TObject)
public
procedure Prepare; virt ......
ʲôÊǶà̬£¬×ÖÃæÒâ˼¾ÍÊÇ“¶àÖÖÐÎ̬”£¬ÓöÔÏóÀ´½²¾ÍÊÇ×ÓÀà¼Ì³Ð»ùÀ࣬¶ø²»Í¬µÄ×ÓÀàÓÖ·Ö±ð¶Ô»ùÀà½øÐй¦ÄܵÄÀ©Õ¹¡£
¶à̬ÔÚObject PascalÖÐÊÇͨ¹ýÐé·½·¨ÊµÏֵģ¨Virtual Method£©,ÔÚObject PascalÖлùÀàµÄÐé·½·¨ÊÇ¿ÉÒÔ±»ÅÉÉúÀา¸Ç£¨Override£©µÄ ......