用 Delphi 学设计模式(二) 之 工厂方法篇 (原创)[3]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 wlnh_2004 的 blog



        这里是工厂方法模式的实现方法,在这种模式中
        1、每一种水果都对应有一个小贩负责,这样他们做起生意来就轻松多了,呵呵!
        2、顾客直接和小贩打交道,他知道您要什么,这样就不会因为说不清那讨厌的水果名字而吃不上说水果了。

//工厂类和水果类单元文件

unit factorymethod;

interface

type
  接口_水果 = interface(iinterface)
    function 提示():string;
    function 被评价():string;
  end;

  类_苹果 = class(tinterfacedobject, 接口_水果)
    function 提示():string;
    function 被评价():string;
  end;

  类_葡萄 = class(tinterfacedobject, 接口_水果)
    function 提示():string;
    function 被评价():string;
  end;

  类_草莓 = class(tinterfacedobject, 接口_水果)
    function 提示():string;
    function 被评价():string;
  end;

  接口_小贩 = interface(iinterface)
    function 工厂(): 接口_水果;
  end;

  类_苹果小贩 = class(tinterfacedobject, 接口_小贩)
   function 工厂(): 接口_水果;
  end;

  类_葡萄小贩 = class(tinterfacedobject, 接口_小贩)
    function 工厂(): 接口_水果;
  end;

  类_草莓小贩 = class(tinterfacedobject, 接口_小贩)
    function 工厂(): 接口_水果;
  end;

implementation

{****** 类_苹果 ******}

function 类_苹果.提示():string;
begin
  result:='削了皮再吃!';
end;

function 类_苹果.被评价():string;
begin
  result:='恩,还不错,挺甜!';
end;

{****** 类_葡萄 ******}

function 类_葡萄.提示():string;
begin
  result:='别把核咽下去了!';
end;

function 类_葡萄.被评价():string;
begin
  result:='没有核呀???';
end;

{****** 类_草莓 ******}

function 类_草莓.提示():string;
begin
  result:='别怪我没告诉你,很酸!';
end;

function 类_草莓.被评价():string;
begin
  result:='试试?哇,牙快酸掉了!';
end;

{***** 类_苹果小贩 *****}

function 类_苹果小贩.工厂(): 接口_水果;
begin
  result:=类_苹果.create()
end;

{***** 类_葡萄小贩 *****}

function 类_葡萄小贩.工厂(): 接口_水果;
begin
  result:=类_葡萄.create()
end;

{***** 类_草莓小贩 *****}

function 类_草莓小贩.工厂(): 接口_水果;
begin
  result:=类_草莓.create()
end;
end.

本文关键:用 Delphi 学设计模式(二) 之 工厂方法篇 (原创)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top