Witam,Piszę pracę inżynierska o wzorcu Odwiedzający i musze napisać własną implementajcę. Niestety nie mam pomysłu na żaden niebanalny problem do rozwiązania. Moglibyscie coś zaproponować?
Przydałoby mi się również gdybyście opowiedzieli o waszych doświadczeniach z tym wzorcem.
Pozdrawiam,Dominik Wiernicki
Pozdrawiam
--
Łukasz
+ 48 606 323 122 http://www.lenart.org.pl/
Warszawa JUG conference - Confitura http://confitura.pl/
Pozdrawiam,
Jacek
W dniu 5 grudnia 2011 09:27 użytkownik Łukasz Lenart
<lukasz...@googlemail.com> napisał:
W dniu 2011-12-05 08:43, Dominik pisze:
Inna opcja - Visitor w obsłudze struktury drzewiastej: interpreter
języka programowania, kompilator albo dowolna inna praca z AST
(Abstract Syntax Tree, drzewo składni abstrakcyjnej) - np. także
własny plugin / inspekcja do Intellij IDEA :) Jeżeli np. skusiłbyś się
na napisanie małego kompilatora/interpretera małego języka (polecam
np. jakiś podzbiór Lolcode [0] albo Javalette [1] - w zależności od
rodzaju poczucia humoru i ambicji), to z chęcią Ci pomogę. Napisanie
kompilatora produkującego bytecode jvm wcale nie jest trudne :)
(zrobiłem to w trakcie studiów ze 2 razy, pisałem także swój i kolegi
interpreter ;P). Za to na pewno nie jest trywialne ;)
Jeszcze inny przykład (także hierarchiczny) to obsługa niektórych
operacji na komponentach w Wiket-cie[3]. Zwróć uwagę na użycia [4]
interfejsu IVisitor [5]. Co prawda ichnia wersja Visitora jest trochę
inna (bogatsza) niż dyktuje sam wzorzec/Wikipedia/GoF, ale chyba samo
studium tej implementacji jest znacznie bardziej kształcące niż
pisanie własnej od zera (która jest już przecież w Wikipedii...). Z
ciekawszych rzeczy, jakie udało się Wicket-om wyabstrahować do
ichniego IVisitor i klas pochodnych dostarczonych z frameworkiem:
* typ zwracany wizyty
* kolejność przechodzenia (np DeepChildFirstVisitor)
Być może Twoja praca inżynierska mogłaby zawierać opis podstawowej
wersji wzorca, opis tego jak zrobili to w Wicket-cie i implementować
jakieś ciekawe operacje na komponentach w ramach jakiejś prostej (?)
web-aplikacji.
Pozdrawiam,
Artur
[0] http://lolcode.com/
[1] http://www.mimuw.edu.pl/~ben/Zajecia/Mrj/Javalette/javalette.html.bak
[3] http://wicket.apache.org
[4]
http://grepcode.com/search/usages?id=repo1.maven.org$mav...@org.apache.wicket$wicke...@1.5-RC3@org$apache$wicket$util$visit@IVisitor&type=type&k=u
[5] http://wicket.apache.org/apidocs/1.5/org/apache/wicket/util/visit/IVisitor.html