Klasy pochodne od klasy "Application"

From MorphOS Library

Grzegorz Kraszewski


Ten artykuł w innych językach: angielski


Każdy program używający MUI jest (a przynajmniej powinien być) sterowany zdarzeniami. Oznacza to, że program dostarcza zestawu akcji, które mogą być wyzwalane przez użytkownika (najczęściej za pośrednictwem myszy albo klawiatury). Najprostszym sposobem umieszczenia w programie takiego zestawu akcji jest zaimplementowanie ich jako zestawu metod jakiegoś obiektu MUI. Dla prostych aplikacji najlepszym kandydatem do dodania takich metod jest główny obiekt programu klasy Application. Bardziej złożone programy, na przykład używające interfejsu z wieloma oknami dokumentów (ang. multi-document interface), mogą dodawać akcje do innych klas, na przykład do klasy Window.

Dlaczego metody? Napisanie akcji programu w postaci metod ma kilka zalet:

  • Metody mogą być użyte bezpośrednio jako akcje w notyfilacjach. Programista nie musi używać hooków ani zaśmiecać głównej pętli dekodowaniem zdarzeń.
  • Metody mogą być bezpośrednio przyporządkowane poleceniom dostępnym w językach skryptowych poprzez port komunikacyny (zwany tradycyjnie portem ARexxa).
  • Metody wywołane z notyfikacji są wykonywane bezpośredno w odpowiedzi na zdarzenia. Nie ma opóźnień wprowadzanych przez główną pętlę, zwłaszcza gdy pętla ta nie jest pusta.
  • Wartość atrybutu wyzwalającego notyfikację może być bezpośrednio przekazana do metody jako jej parametr.
  • Użycie metod zwiększa modułowość kodu i enkapsulację danych. Funkcje, które działają na danym obiekcie, są metodami tego obiektu, kod dotyczący obiektu nie jest rozrzucony po całym projekcie.

W dobrze zaprojektowanej aplikacji MUI cała funkcjonalność programu zawarta jest w metodach, a wewnętrzny stan programu i danych jest pamiętany jako zestaw atrybutów i pól w strukturze danych obiektu (lub obiektów). Przykład takiego programu został szczegółowo omówiony w artukule "Tworzenie klas pochodnych: port programu SciMark2".