>:string; begin result:=''''刚上市的沙瓤大西瓜,2元钱一斤!''''; end;
function 类_西瓜.被评价():string; begin result:=''''靠,被骗了,根本没熟!''''; end; //=============================================================================
2、在工厂类和水果类单元文件中,修改小贩的工厂方法(这里是修改,已经违反了“开闭原则”)
//============================================================================= class function 工厂类_小贩.工厂(水果名:string): 接口_水果; begin if(水果名=''''苹果'''')then result:=类_苹果.Create() else if(水果名=''''葡萄'''')then result:=类_葡萄.Create() else if(水果名=''''草莓'''')then result:=类_草莓.Create() //请注意,下面这条语句是新加上去的,工厂被修改了!!!! else if(水果名=''''西瓜'''')then result:=类_西瓜.Create(); end; //=============================================================================
3、在窗体单元文件中,添加一个新的事件处理过程(这里是扩展,不会影响到已有的代码)
//============================================================================= RadioButton4: TRadioButton; procedure RadioButton4Click(Sender: TObject);
procedure TForm1.RadioButton4Click(Sender: TObject); begin 交易(''''西瓜''''); end; //=============================================================================
下面再看看在工厂方法模式中是怎么做的:
1、这一步和在简单工厂模式中做的一样,在工厂类和水果类单元文件中,引入一个新的西瓜类(这里是扩展,不会影响到已有的代码)
//============================================================================= 类_西瓜 = class(TInterfacedObject, 接口_水果) function 提示():string; function 被评价():string; end;
{****** 类_西瓜 ******}
function 类_西瓜.提示():string; begin result:=''''刚上市的沙瓤大西瓜,2元钱一斤!''''; end;
function 类_西瓜.被评价():string; begin result:=''''靠,被骗了,根本没熟!''''; end; //=============================================================================
2、区别就在这里了,在工厂类和水果类单元文件中,引入一个新的西瓜小贩类(这里是扩展,不会影响到已有的代码)
//============================================================================= 类_西瓜小贩 = class(TInterfacedObject, 接口_小贩) function 工厂(): 接口_水果; end;
{***** 类_西瓜小贩 *****}
function 类_西瓜小贩.工厂(): 接口_水果; begin result:=类_西瓜.Create() end; //=============================================================================
3、在窗体单元文件中,添加一个新的事件处理过程(这里是扩展,不会影响到已有的代码)
//============================================================================= RadioButton4: TRadioButton; procedure RadioButton4Click(Sender: TObject);
procedure TForm1.RadioButton4Click(Sender: TObject); begin 交易(类_西瓜小贩.Create); end; //=============================================================================
上一页 [1] [2] [3] [4] |