Zostałem poproszony o napisanie GUI dla istniejącego programu powłoki/cmdline napisanego w Javie i chcę stworzyć warstwę abstrakcji pomiędzy GUI i oryginalnym programem, który ułatwia dodanie innego GUI (WWW interfejs, na przykład zamiast aplikacji komputerowej). W tej chwili, struktura programu jest następująca:.Jakie są plusy i minusy używania XML do przesyłania danych w tym programie Java?
opcje wiersza polecenia są natychmiast przełożyło się na hashtable Java (przy opcji takich jak -f opt
do mieszania "-f=>opt"
Opcje te są następnie wykorzystywane . do utworzenia obiektu environment
, który wykorzystuje program
struktura mam na myśli to:
Po linii ciągłej oznacza to, że GUI tworzy plik XML zawierający te same informacje, co opcje powłoki/polecenia cmdline, a następnie służy do ustawienia opcji environment
.
Chodzi o to, że nie jestem do końca pewien, czy to najlepszy sposób na działanie (skąd linie przerywane oznaczają alternatywne struktury), a także nie wiem, czy XML jest tu właściwym wyborem.
W obecnej wersji części programu, które ustawiają obiekt environment
z options
, są umieszczone w tych samych metodach co części, które używają environment
, aby uzyskać wyniki. Więc łatwiej byłoby zaimplementować coś, co podawałoby argumenty powłoki/polecenia cmdline bezpośrednio do programu, niż zaimplementowałoby strukturę, w której informacja była przekazywana jako plik XML. Na pewno nie chcę tworzyć pliku XML, a następnie tłumaczyć go na opcje powłoki i przenosić je do programu, ale może to mieć więcej sensu dla GUI do generowania samych opcji powłoki niż tworzenia XML.
Główną zaletą używania pliku XML, o ile widzę, jest to, że ułatwia on przyszłym programistom korzystanie z istniejących bibliotek do tworzenia plików XML, a nie martwienie się o uzyskanie prawidłowej składni -a opt1 -b opt2 -c opt3 [...]
.
Z drugiej strony, słyszałem, że próba stworzenia własnego języka XML to not to be taken lightly (chociaż program, w którym stoi, przechowuje dane w plikach XML bez DTD lub nawet schematu, o ile wiem).
Czy moje podejście jest mniej lub bardziej prawidłowe? Czy używam całkowicie nieodpowiednich narzędzi do pracy, którą próbuję wykonać?
Pięknie przedstawione pytanie, jednak głosowałem na zakończenie, ponieważ wydaje się być subiektywne/oparte na opiniach. –
xml może być trochę ciężko rozdarty, możesz rozważyć użycie YAML lub JSON w jego miejscu. –
YAGNI & KISS - generalizuj, kiedy masz konkretny drugi GUI, a nie spekulacje na temat tego, co może się wydarzyć, do tego czasu, co jest nie tak z użyciem "HashTable", który jest już używany. –