Code:
Code:
type
TDatabase = class(System.Object)
private
class var FInstance: TDatabase;
protected
class function CreateInstance: TDatabase; virtual; abstract;
public
class function GetInstance: TDatabase;
procedure LoadRecord(Id: Integer; DataRecord: TDataRecord); virtual; abstract;
end;
implementation
{ TDatabase }
class function TDatabase.GetInstance: TDatabase;
begin
if not Assigned(FInstance) then
FInstance := CreateInstance;
Result := FInstance;
end;
Code:
type
TMemoryDatabase = class(TDatabase)
protected
class function CreateInstance: TDatabase; override;
public
procedure LoadRecord(Id: Integer; DataRecord: TDataRecord); override;
end;
implementation
{ TMemoryDatabase }
class function TMemoryDatabase.CreateInstance: TDatabase;
begin
Result := TMemoryDatabase.Create;
end;
procedure TMemoryDatabase.LoadRecord(Id: Integer; DataRecord: TDataRecord);
begin
//nog niks
end;
En dan gaat het mis als ik doe:
TMemoryDatabase.GetInstance;
Bookmarks