这里是工厂方法模式的实现方法,在这种模式中
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. |