Jag tänkte göra ett program där jag använder flaggor.
t.ex vill jag kunna skriva java program -d /directory -r (recursivly).
Jag vill bara veta hur man löser det på ett snyggt sätt.
Jag kan ju rada upp en massa if satser osv... men det vill jag helst slippa.
Jag vill inte att ordningen på flaggorna ska spela någon roll.
Vill man göra det snyggt så skapar man ett interface CMDFlagOperations som har en metod parse(String [] args, int index) och en metod execute(). Varje klass som implementerar CMDFlagOperations skall ha en egen nyckel som är samma som flaggan man vill att den skall använda sig av.
Parse används för att söka igenom arrayen dels för att få fram nästa token (som alltså är input till operationen) samt eventuellt kolla om andra flaggor som också krävs är definierade.
T.ex. så skulle RecurseCMDFlagOperation ha key="r" och i parsefunktionen skulle den kolla efter flaggan -d och låta DirectoryCMDFlagOperation ta hand om den.
Sedan får man då köra execute på både DirectoryCMDFlagOperation och RecurseCMDFlagOperation.
Alla operationer bör skapas i en Factory till vilken man skickar ett token varje gång man hittar ett minustecken i argumentet.
376 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849