Mariusz Trzaska PJATK (public)
Publiczna strona poświęcona mojej działalności w PJATK

Kontener Inversion Of Control dla obiektów Ruby realizujący wzorzec projektowy Dependency Injection

Mariusz MGR

Pobierz

Rozmiar pliku: 692.1 KB

Praca magisterska obroniona w PJWSTK.

Tytuł: Kontener Inversion Of Control dla obiektów Ruby realizujący wzorzec projektowy Dependency Injection

Autor: Sławomir Zabkiewicz

Promotor: dr inż. Mariusz Trzaska

Streszczenie:

Paradygmat Inversion of Control, czyli odwrócenie sterowania w projektach programistycznych polega przede wszystkim na przeniesieniu odpowiedzialności za kontrolę wybranych czynności na zewnątrz obiektu, komponentu. Najpopularniejszą obecnie realizacją tego paradygmatu jest wstrzykiwanie zależności - Dependency Injection.

Zagadnienie to jest bardzo popularne w środowisku programistów języka Java, gdzie funkcjonuje aktualnie kilka bardzo rozbudowanych implementacji wzorców projektowych przenoszących odpowiedzialność za tworzenie obiektów i ich łączenie do kontenerów Inversion of Control.

Poniższa praca koncentruje się na jednym z tych wzorców, a głównym jej celem było stworzenie implementacji Dependency Injection w skryptowym języku Ruby. Dostępne w nim techniki metaprogramowania oraz dynamiczny charakter samego języka pozwalają w prosty i przyjemny sposób stworzyć minimalistyczną wersję kontenera obiektów, który bardzo łatwo można rozszerzać o dodatkowe funkcje.

Ruby jest stale rozwijanym stosunkowo nowym językiem programowania. Ze względu na prostotę i czytelność programów oraz jednocześnie wszechobecną obiektową składnię daje bardzo wiele możliwości i dzięki temu zyskuje wielu zwolenników.

Stworzony na potrzeby tej pracy kontener dla obiektów Ruby stanowi istotne rozszerzenie możliwości języka i jednocześnie pozwala znacznie zmniejszyć kod oprogramowania. Jest to szczególnie ważne przy tworzeniu dużych zespołowych projektów programistycznych. Ułatwia szybką zmianę i zapewnia łatwą konserwację takich projektów.

W celu zaprezentowania poprawności działania kontenera Inversion of Control została przygotowana, również w języku Ruby, aplikacja obsługująca protokół XML-RPC. Użycie w tej aplikacji wstrzykiwania zależności oraz kontroli nad obiektami przez kontener pozwala programiście skoncentrować się na tym, co ważne – na implementacji samego protokołu.