type
IDatabase = interface
function GetDatabaseName() : String;
end;
TDatabase = class(TInterfacedObject, IDatabase)
private
FDtabaseName : String;
public
procedure SetDatabaseName(ADatabaseName : String);
function GetDatabaseName() : String;
end;
{ TDatabase }
procedure TDatabase.SetDatabaseName(ADatabaseName : String);
begin
Self.FDtabaseName := ADatabaseName;
end;
function TDatabase.GetDatabaseName() : String;
begin
Result := Self.FDtabaseName;
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
DatabaseList : TInterfaceList;
ADatabase : TDatabase;
InterfaceDatabase : IDatabase;
i : integer;
begin
DatabaseList := TInterfaceList.Create;
ADatabase := TDatabase.Create;
ADatabase.SetDatabaseName('Oracle');
InterfaceDatabase := ADatabase;
DatabaseList.Add(InterfaceDatabase);
ADatabase := TDatabase.Create;
ADatabase.SetDatabaseName('MsSQL');
InterfaceDatabase := ADatabase;
DatabaseList.Add(InterfaceDatabase);
for i :=0 to DatabaseList.Count-1 do begin
Memo1.Lines.Add(IDatabase(DatabaseList[i]).GetDatabaseName());
end;
end;
TInterfaceList
- TInterfaceList 사용하기 2007.08.17
TInterfaceList 사용하기
2007. 8. 17. 00:57
728x90
델파이의 경우도 JAVA와 같이 객체의 상속은 하나만 되고, Interface의 상속은 다중으로 되고 있습니다. 객체의 어떠한 성격을 Interface로 만들고 그 것을 Collection 객체에 담아 두었다가 다시 사용할 수 있는 것은 OOP 프로그램을 하면서 유용하게 사용할 수 있을 것입니다. 최근에 TInterfaceList 가 있는 것을 알게 되었네요. 그래서 여기 Tip에 올립니다.
728x90