Difference between revisions of "Klasy pochodne od klasy "Application""

From MorphOS Library

(Translation in progress.)
(Link redirected to Polish version.)
 
(2 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
Każdy program używający MUI jest (a przynajmniej powinien być) [[Programowanie sterowane zdarzeniami, notyfikacje|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''.  
 
Każdy program używający MUI jest (a przynajmniej powinien być) [[Programowanie sterowane zdarzeniami, notyfikacje|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''.  
  
Why methods? Implementing actions as methods has many advantages:
+
Dlaczego metody? Napisanie akcji programu w postaci metod ma kilka zalet:
* Methods may be used directly as notification actions. It saves a programmer from using hook tricks or cluttering the main loop with lots of ''ReturnID'' values.
+
* Metody mogą być użyte bezpośrednio jako akcje w [[Programowanie sterowane zdarzeniami, notyfikacje#Notyfikacje w MUI|notyfilacjach]]. Programista nie musi używać hooków ani zaśmiecać głównej pętli dekodowaniem zdarzeń.
* Methods may be coupled directly with scripting language interface (formerly known as ARexx interface) commands.
+
* Metody mogą być bezpośrednio przyporządkowane poleceniom dostępnym w językach skryptowych poprzez port komunikacyny (zwany tradycyjnie portem ARexxa).  
* Methods used in notifications are executed immediately in response to user actions. No delay is introduced by the main loop (especially if it is not empty).
+
* 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.
* A notification triggering attribute value may be [[Event Driven Programming, Notifications#Reusing Triggering Value|passed directly]] to a method as its parameter.  
+
* Wartość atrybutu wyzwalającego notyfikację może być [[Programowanie sterowane zdarzeniami, notyfikacje#Wykorzystanie wartości wyzwalającej|bezpośrednio przekazana]] do metody jako jej parametr.  
* Using methods improves code modularity and object encapsulation. Functionality meant to be handled in the scope of an object is handled in its method, without the code spreading across the project.
+
* 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.
  
In a well designed MUI program, all program actions and functionality are implemented as methods and the program internal state is stored as a set of attributes and internal application instance data fields. An example of such a program is discussed throughly in the [[MUI Subclassing Tutorial: SciMark2 Port]] article.
+
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]]".

Latest revision as of 13:53, 28 January 2011

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".