Programowanie w języku Delphi » OOP

Dynamic

dynamic - słowo kluczowe języka Delphi

Klauzulą dynamic można opatrzeć metodę klasy. Staje się wówczas metodą dynamiczną. Taką metodę można wówczas przedefiniować w klasie - potomku. Metodę dynamiczną deklaruje się stawiając za nagłówkiem metody, słowo kluczowe dynamic:

type
  TMyClass = class
  public
    procedure Dynamic_Method; dynamic;
  end;


W działaniu metody dynamiczne i wirtualne są praktycznie takie same. Jedyne co je różni, to sposób wykonywania. Otóż metody wirtualne cechuje większa szybkość wykonania kodu, natomiast metody dynamiczne umożliwiają lepszą optymalizację kodu.

Jak to wygląda od strony kompilatora? Otóż Delphi utrzymuje dla każdej klasy tzw. tablicę VMT (ang. Virtual Method Table). Tablica VMT przechowuje w pamięci adresy wszystkich metod wirtualnych, tak więc niejako przyczynia się do zwiększenia pamięci operacyjnej, jakiej wymaga nasza aplikacja. Można to ominąć, stosując metody dynamiczne, ale ? jak mówiłem ? wiąże się to z gorszą optymalizacją kodu.

Generalnie zaleca się używanie metod wirtualnych zamiast metod dynamicznych.

Zobacz też: