webForumDet fria alternativet

"Design-val", var ska jag lägga metoderna?

1 svar · 343 visningar · startad av Compusa

CompusaMedlem sedan jan. 20023 327 inlägg
#1

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å?

LimeMedlem sedan sep. 2001961 inlägg
#2

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...

128 ms totalt · 3 externa anrop · v20260731065814-full.102f7fcd
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)