티스토리 뷰

Programming/Delphi

TInterfaceList 사용하기

파란크리스마스 2007. 8. 17. 00:57
728x90
델파이의 경우도 JAVA와 같이 객체의 상속은 하나만 되고, Interface의 상속은 다중으로 되고 있습니다. 객체의 어떠한 성격을 Interface로 만들고 그 것을 Collection 객체에 담아 두었다가 다시 사용할 수 있는 것은 OOP 프로그램을 하면서 유용하게 사용할 수 있을 것입니다. 최근에 TInterfaceList 가 있는 것을 알게 되었네요. 그래서 여기 Tip에 올립니다.

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;

댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함