MVC und CommandPattern

Derzeit bin ich dabei ein Client zu erstellen, der Requests an einen fremdem Webservice sendet und
die (Antwort) JSON mit Jackson auf diverse Objecte verschiedener Klassen mappt.
(Klassen wurden auto-generiert, hier jsonschema2pojo) Soviel zur Vorgeschichte. Das Programm ist
immerhin schon von der Console bedienbar, jetzt soll noch eine GUI drumherum, dabei will ich das ganze
gleich etwas bereinigen.

Nun zu meiner Fragestellung, wahrscheinlich für viele sehr einfach, aber ich ertränke mich gerne
immer in Selbstzweifel und komme dann nicht voran (v.a. da ich zwischen privaten Projekten immer lange ‘code-freie’ Zeit habe).

Bisher sieht das ganze bei mir so aus:
QueryBuilder => Enum, welche alle nötigen API-Query-Strings bereithält und weiterhin mit einer entsprechenden Methode die Parameter ersetzt
Command => Abstrakte Klasse für alle Commands, die im Grunde alle relativ gleich sind (QueryString aufbauen, Webservice Anfrage über JsoRequestReader Objekt)
XCommand => Spez. Implementierung von Command
Hauptklasse => Nimmt Befehle und Parameter entgegen und übergibt sie einem spezifischen Command (Commands liegen in einer Map, der Key(String) ist der eingegebene Befehl

Bisher erfolgt die Ausgabe durch den Logger, weil damit nichts weiter gemacht wurde.

Zunächst einmal, wie lege ich denn die Anfrage-Strings am Besten ab? I.A. bestehen sie ja aus Protocol, Host, Message-Teil, Parameter-Teil
Einfach in eine Datei schmeißen und als URL laden? Diese hart ins Programm zu coden gefällt mir iwie nicht

So soll(?) es aussehen:
CommandExecutor => Interface stellt Methoden bereit wie login(String… params) :: ist quasi Facade für alle Commands und für andere Pakete sichtbar
DefaultCommandExectuor => Implementiert die Methoden des Interfaces, kann je nach Methode die Parameter an das richtige Command-Objekt delegieren

Eine Frage wäre jetzt, ob die Commands auf Grund ihrer eigentlich fast gleichen Beschaffenheit entfernt werden (wird eh immer mehr) und nur ein Command-Object übrigbleibt mit
einer execute() Methode, das Command wird dann evtl. von einem statischen CommandBuilder aufgebaut. Command wäre dann ein Generic, auf Grund der vielen
mögl. Objekte die gemappt werden können. Command könnte man dann auch noch als eigenen Thread erstellen.

Die GUI bekommt dann eigentlich nur den CommandExecutor (registriert sich evtl. auch als Listener, damit am Ende informiert werden kann, falls Command fertig durchgeführt wurde).

Ist das gut, oder eher schlecht oder was dazwischen? Und wie geht es besser?

Grüße
BL