Grundregel nummer ett när det gäller OO-programering är "den som använder det, implementerar metoden". I ditt fall så är Point bara en databärare och ska bara innehålla de metoder som gäller för just Point. Andra klasser som använder sig av Point-objekt kan mycket väl implementera metoder för att konvertera till andra format. T.ex. så kan en klass GUIPoint ta en Point i sin konstruktor och modellera om den på något sätt för att passa...
Jag håller på med ett spel i Java och jag är nästan klar. Jag skulle dock behöva lite hjälp med ett design-val. Jag har en klass som heter Point, vilken representerar en koordinat. Mitt GUI representerar koordinater på ett sätt och i mina andra klasser representerar jag det på ett annat sätt. I mitt GUI fångar jag upp koordinater när användaren skapar drag-and-drop händelser med musen.
Förtillfället har jag två stycken metoder i min koordinat-klass. Den ena metoden konverterar från GUI-format till intern-format och den andra metoden gör tvärtom. Jag tycker det känns lite dumt att ha dessa metoder här eftersom denna koordinatklassen blir ganska GUI-specifik.
Jag har funderat på att göra en ny klass, kanske en factory-klass som skapar mina koordinater istället. Denna factory-klass kan sedan ha metoder med olika parametrar för att skapa nya koordinat-objekt. Ett annat alternativ skulle kunna vara att skapa en klass som heter något i stil med CoordinateConverter som har två statiska metoder, vilka konvertera koordinaterna.
Vilken lösning låter bäst, eller finns det kanske ett annat och bättre sätt att lösa det på?