Beste mensen,
Ik worstel een beetje met de architectuur van mijn applicatie. Dit probleem heb ik eigenlijk altijd, maar vind dat het nu tijd is om knopen door te hakken
Net zoals nu bijvoorbeeld heb ik een User class. Methoden die te maken hebben met users zijn:
Login(username, password)
GetUserById()
GetUsersByGroupId()
AddUser()
EditUser()
DeleteUser()
Het punt is dat ik altijd twijfel waar ik deze methoden moet plaatsen. In eerste instantie zou je zeggen plaats ze in de user class. Maar deze class is niet verantwoordelijk voor het ophalen voor alle users die in een bepaalde groep zitten. Daarbij mag deze class ook geen data ophalen uit de database. Of wel? Als dit niet het geval is, komt er dus een extra class bij: UserManager(/UserData/UserFactory net erna hoe je het noemen wil). Deze class mag wel data ophalen en is niet verantwoordelijk voor één user, dus mag die een lijst teruggeven met alle users. Alleen vraag ik me af: is deze beredenering correct?
Ik heb dus een beetje moeite met de verantwoordelijkheden van een class: wat mag hij wel en wat mag hij niet / waar plaats ik welke methode en waarom?
Ik hoop dat jullie mij kunnen helpen en tips hebben om voortaan zulk soort problemen op te lossen.
Alvast bedankt.
Martijn
Ik worstel een beetje met de architectuur van mijn applicatie. Dit probleem heb ik eigenlijk altijd, maar vind dat het nu tijd is om knopen door te hakken
Net zoals nu bijvoorbeeld heb ik een User class. Methoden die te maken hebben met users zijn:
Login(username, password)
GetUserById()
GetUsersByGroupId()
AddUser()
EditUser()
DeleteUser()
Het punt is dat ik altijd twijfel waar ik deze methoden moet plaatsen. In eerste instantie zou je zeggen plaats ze in de user class. Maar deze class is niet verantwoordelijk voor het ophalen voor alle users die in een bepaalde groep zitten. Daarbij mag deze class ook geen data ophalen uit de database. Of wel? Als dit niet het geval is, komt er dus een extra class bij: UserManager(/UserData/UserFactory net erna hoe je het noemen wil). Deze class mag wel data ophalen en is niet verantwoordelijk voor één user, dus mag die een lijst teruggeven met alle users. Alleen vraag ik me af: is deze beredenering correct?
Ik heb dus een beetje moeite met de verantwoordelijkheden van een class: wat mag hij wel en wat mag hij niet / waar plaats ik welke methode en waarom?
Ik hoop dat jullie mij kunnen helpen en tips hebben om voortaan zulk soort problemen op te lossen.
Alvast bedankt.
Martijn