昨天我自己引用了一个国外的网页,是关于MVC的,也是给大家做参考的,其实他所理解的MVC我不完全赞成,现将我的MVC 实现公布
下面是C控制层的代码!!!
{*******************************************************}
{ unit name: Controller }
{ class: TProgramController }
{ descripate: 此Class为MVC中的控制层, }
{ 担任着程序流程的调度工作 }
{ blog : http://blog.csdn.net/zhuam }
{ author: zhuam }
{ date : 2004/10/25 }
{ Copyright (c) 1.0 }
{*******************************************************}
unit Controller;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, ExtCtrls, Model;
{-----------------------------------
descripate: 用于分发程序的业务流程
------------------------------------}
type
TProgramController=class(TObject)
private
TempModelClass:IProgramModel; //业务逻辑Class <Base Model>
public
procedure portal(FView:TForm;sOperator:string);
end;
implementation
uses Util, UnitMVCExample;
{ TProgramController }
procedure TProgramController.portal(FView: TForm;sOperator: string);
var
ClassTemp:TComponentClass;
SListRead:TSListReader;
XMLRead:TXMLReader;
sModel:string;
begin
try
SListRead:=TSListReader.Create;
XMLRead:=TXMLReader.Create;
sModel:=SListRead.getSListDataToModelString(XMLRead.getXMLDataToList,FView.Name,sOperator);
if Trim(sModel)<>'' then
begin
ClassTemp:=TComponentClass(getClass(sModel)); //类似java中的反射,根据名称产生Class实例
TempModelClass:=(ClassTemp.Create(nil) as IProgramModel);
TempModelClass.Execute(FView);
end;
except
//raise
end;
end;
initialization
RegisterClass(TForm1Model);
end.