Allora per adesso ho risistemato il codice in questo modo:
Va bene come design ?codice:import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class TableSort { boolean descending; int sort; Comparator<Game> comparator; public TableSort(int s,boolean d) { sort=s; descending=d; } public void sort(ArrayList<Game> games) { if(sort==0)comparator=new PathComparator(); else if(sort==1)comparator=new DateComparator(); else if(sort==2)comparator=new WhiteComparator(); else if(sort==3)comparator=new BlackComparator(); else if(sort==4)comparator=new WhiteRankComparator(); else if(sort==5)comparator=new BlackRankComparator(); else if(sort==6)comparator=new TypeComparator(); else if(sort==7)comparator=new CommentComparator(); else return; if(descending)comparator=Collections.reverseOrder(comparator); Collections.sort(games,comparator); } class PathComparator implements Comparator<Game> { public int compare(Game g,Game h){ return g.path.compareTo(h.path); } } class DateComparator implements Comparator<Game> { public int compare(Game g,Game h){ return g.date.compareTo(h.date); } } class WhiteComparator implements Comparator<Game> { public int compare(Game g,Game h){ return g.white.compareTo(h.white); } } // ... stessa storia per gli altri comparatori }

Rispondi quotando

