RTTI
jakubkrol
RTTI (Run Time Type Information ? informacja o typie w trakcie wykonywania programu) jest techniką stosowaną w nowoczesnych obiektowych językach programowania. Technika ta polega na dołączeniu do kodu programu informacji o typach (klasach) ich własnościach i dostępnych metodach. Stosuje się ją w celu umożliwienia tworzenia obiektów na podstawie nazwy klasy obiektu a także zmiany własności obiektów poprzez zmianę własności dostępnych także poprzez nazwę własności. Własności mogą być też powiązane z kodem procedur, nazywane są wówczas zdarzeniami, połączenie kodu do danego zdarzenia umożliwia indywidualizację zachowania obiektu utworzonego podczas działania programu.
Technika ta wprowadza do języków programowania kompilujących kod źródłowy nowe, opisane niżej, możliwości niedostępne wcześniej dla programów kompilowanych i umożliwia nowe podejście do programowania o możliwościach wymaganych przez języki czwartej generacji 4GL. Wprawdzie RTTI występuje bezpośrednio tylko w ostatniom etapie, ale zmienia sposób pracy na etapie 2.
Tworzenie programu może być rozdzielone na etapy.
-
Przygotowanie komponentów.
W etapie tym zaawansowany programista tworzy komponenty (klasy), w których decyduje jakie własności tej klasy są dostępne przez RTTI. Własności te nazywane własnościami opublikowanymi (published) są one dostępne dla programistów korzystających z tych komponentów nie tylko w kodzie programu, ale także w specjalnym edytorze zwanym inspektorem obiektów. Własności opublikowane mogą być dostępne dla użytkownika programu w momencie pracy programu i są często używane do zapisywania ustawień programu.
-
Tworzenie aplikacji
W etapie drugim programista tworzący aplikację używa komponentów dołączając je do swego programu tym samym tworzy obiekty danego typu. Wybierając utworzony obiekt programista widzi jakie własności opublikowane ma utworzony obiekt i może je zmieniać, zmiany te natychmiast są uwzględniane, w kodzie programu (dwustronna ...) i wyglądzie projektowanej aplikacji. W ten sposób bez znajomości języka programowania lub znając tylko jego podstawy można zbudować w pełni działający program.
-
Działanie programu
Program uruchamiając się czyta, umieszczone zazwyczaj w zasobach, informacje o obiektach (np. elementach ekranu) które ma utworzyć, odczytuje nazwę typu obiektu do utworzenia, odszukuje ją w informacjach zawartych w RTTI i na tej podstawie tworzy obiekt, następnie odczytuje nazwy własności, i nadaje im wartości zawarte w wczytywanych danych. Technika wczytywania i zapisywania danych obiektów może być wykorzystywana na różnych etapach pracy programu do różnych celów.
Umieszczenie danych o wyglądzie i sposobie działania programu nie w kodzie wynikowym programu lecz w dodatkowych plikach, umożliwia dostosowanie programu do preferencji użytkownika bez konieczności przebudowy oraz kompilowania programu, użytkownik często może sam zmienić ustawienia, a te w prosty sposób wykorzystując technikę RTTI mogą być zapisane i odczytane.
Przykład:
Wszystkie informacje o wyglądzie okna programu w środowisku Delphi nie są kompilowane do kodu wynikowego, podczas pracy są one umieszczane w plikach typu .dfm, a podczas kompilacji są dołączane do pliku programu. Poniżej zamieszczony jest fragment pliku *.dfm. Opisuje on przycisk z obrazkiem (TbitBtn) umieszczony w oknie ekranu. W trakcie tworzenia tego okna zostanie utworzony obiekt o typie który nazywa się TBitBtn (przycisk z obrazkiem), zostanie nadana mu nazwa BtnPrzerwij, umieszczony będzie w miejscu o współrzędnych (192, 216) (left, top), będzie miał wysokość 25 (Height) oraz szerokość 75 (Width). W momencie jego naciśnięcia ma zostać uruchomiona opublikowana procedura o nazwie BtnPrzerwijClick.
<tt>object BtnPrzerwij: TBitBtn
Left = 192
Top = 216
Width = 75
Height = 25
TabOrder = 2
OnClick = BtnPrzerwijClick
Kind = bkCancel
end</tt>
Źródło: <wiki href="RTTI">Wikipedia</wiki>