Kontener Inversion Of Control dla obiektów Ruby realizujący wzorzec projektowy Dependency Injection
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.