Inleiding:
Ik ben bezig met ontwerpen van een applicatie waarin verschillende types mensen kunnen inloggen ( mentoren, leerlingen en decanen ). Al deze mensen hebben verschillende rechten.
Nu moeten deze personen natuurlijk inloggen en aan de hand van hun login & pass moet hun status bepaald worden ( leerling of mentor? )
Nu ben ik dus opzoek naar een mooie OO oplossing hiervoor.
Situatie:
Verschillende soorten mensen kunnen inloggen in de applicatie: Mentoren, leerlingen en Decanen, dus hiervoor heb ik verschillende classes gemaakt.

Nu vind ik inloggen in de applicatie niet echt een actie van de personen zelf, maar van de applicatie, dus heb ik hiervoor ook een class gemaakt. Deze class kan teruggeven of de persoon toegang heeft en een request voor toegang doen. Hier even wat code van die class om het te verduidelijken :
probleem
Het gaat om dit request. Als hij vraagt om toegang, verbind hij met de db (dit moet nog via een class) en query't de db of de persoon toegang heeft en welk level dan wel niet.
Maar hoe weet de applicatie nou welk soort object hij moet gaan aanmaken ( evt. terugkrijgt )
Ik had de volgende oplossingen bedacht:
- De methode kan een object returnen van het juiste type. Dit zou ik een mooie oplossing vinden, immers dan zit alle logica in de ToegangControleur class. Echter hoe weet de applicatie dan wel object hij gaat returnen?
- De methode returned een string. Met die string kan de applicatie de juiste handel aan gaan maken, maar dan moet het wel als een string in de db opgeslagen worden, wat ik niet ontzettend mooi vind ( ivm zpellingsfouten )
- Een andere oplossing waar ik maar niet op kan komen.
Wat zou het mooiste zijn? Hoe doen jullie dit allemaal (want inloggen in een applicatie is toch een doodnormale zaak)? zit er een gruwelijke fout in het ontwerp? Is mijn codingstyle klote?
Google en de search hebben me in ieder geval niet kunnen helpen, maar ik vermoed dat het toch niet zo moeilijk moet zijn.
Alvast bedankt eenieder die de moeite neemt om een reply te typen.
Ik ben bezig met ontwerpen van een applicatie waarin verschillende types mensen kunnen inloggen ( mentoren, leerlingen en decanen ). Al deze mensen hebben verschillende rechten.
Nu moeten deze personen natuurlijk inloggen en aan de hand van hun login & pass moet hun status bepaald worden ( leerling of mentor? )
Nu ben ik dus opzoek naar een mooie OO oplossing hiervoor.
Situatie:
Verschillende soorten mensen kunnen inloggen in de applicatie: Mentoren, leerlingen en Decanen, dus hiervoor heb ik verschillende classes gemaakt.

Nu vind ik inloggen in de applicatie niet echt een actie van de personen zelf, maar van de applicatie, dus heb ik hiervoor ook een class gemaakt. Deze class kan teruggeven of de persoon toegang heeft en een request voor toegang doen. Hier even wat code van die class om het te verduidelijken :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
| public class ToegangControleur {
private String naam = "";
private String wachtwoord = "";
private boolean toegang = false;
// Default constructor, het aangemaakte zal geen waardes bevatten;
public ToegangControleur() {
}
//Constructor welke het aangemaakte een naam geeft
public ToegangControleur( String naam ) throws NullPointerException{
//We willen geen nullwaarde als invoer
if( naam == null ){
throw new NullPointerException("Naam kan niet null zijn");
}else{
this.naam = naam;
}
}
public ToegangControleur( String naam, String wachtwoord ) throws NullPointerException{
//We willen geen nullwaarde als invoer
if( naam == null ){
throw new NullPointerException("Naam kan niet null zijn");
//We willen geen nullwaarde als invoer
}else if( wachtwoord == null ){
throw new NullPointerException("Wachtwoord kan niet null zijn");
}else{
this.naam = naam;
this.wachtwoord = wachtwoord;
}
}
public String getNaam( ){
return naam;
}
public String getWachtwoord( ){
return wachtwoord;
}
public boolean getToegang( ){
return toegang;
}
public void setNaam( String naam ){
if( naam == null ){
throw new NullPointerException("Naam kan niet null zijn");
}else{
this.naam = naam;
}
}
public void setWachtwoord( String wachtwoord ){
if( wachtwoord == null ){
throw new NullPointerException("Wachtwoord kan niet null zijn");
}else{
this.wachtwoord = wachtwoord;
}
}
public ???? setToegang( ){
// Deze moet nog gecoded worden
}
} |
probleem
Het gaat om dit request. Als hij vraagt om toegang, verbind hij met de db (dit moet nog via een class) en query't de db of de persoon toegang heeft en welk level dan wel niet.
Maar hoe weet de applicatie nou welk soort object hij moet gaan aanmaken ( evt. terugkrijgt )
Ik had de volgende oplossingen bedacht:
- De methode kan een object returnen van het juiste type. Dit zou ik een mooie oplossing vinden, immers dan zit alle logica in de ToegangControleur class. Echter hoe weet de applicatie dan wel object hij gaat returnen?
- De methode returned een string. Met die string kan de applicatie de juiste handel aan gaan maken, maar dan moet het wel als een string in de db opgeslagen worden, wat ik niet ontzettend mooi vind ( ivm zpellingsfouten )
- Een andere oplossing waar ik maar niet op kan komen.
Wat zou het mooiste zijn? Hoe doen jullie dit allemaal (want inloggen in een applicatie is toch een doodnormale zaak)? zit er een gruwelijke fout in het ontwerp? Is mijn codingstyle klote?
Google en de search hebben me in ieder geval niet kunnen helpen, maar ik vermoed dat het toch niet zo moeilijk moet zijn.
Alvast bedankt eenieder die de moeite neemt om een reply te typen.