In het kader van wat .NET zelfstudie ben ik een eenvoudig multitier systeempje in ASP.NET aan het opzetten. Voor een business object Client heb ik een corresponderend DAL object aangemaakt:
De functie GetAll() bijvoorbeeld populeert het clients object met alle klanten uit de database en paast dit object via een return statement naar de caller. Is dit een verstandig ontwerp? Punten waar ik bijvoorbeeld aan denk:
C#:
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
| public class ClientDAL : IDataAccess<Client> { List<Client> clients = new List<Client>(); #region constructors public ClientDAL(List<Client> clients) { this.clients = clients; } public ClientDAL() { this.clients = this.GetAll(); } public ClientDAL(string sqlSelectQuery) { this.clients = this.GetAll(sqlSelectQuery); } #endregion #region interface public List<Client> GetAll() { // clients list vullen met client objecten } public List<Client> FindAll(Predicate<Client> match) { return clients.FindAll(match); } [ .. etc .. ] |
De functie GetAll() bijvoorbeeld populeert het clients object met alle klanten uit de database en paast dit object via een return statement naar de caller. Is dit een verstandig ontwerp? Punten waar ik bijvoorbeeld aan denk:
- Is de List<Client> clients een verstandige ontwerpkeuze? Of kan ik het DAL object beter stateless maken? En dan bij functies als FindAll ook een strongly typed list als input parameter meegeven?
[ Voor 29% gewijzigd door Verwijderd op 08-07-2005 17:38 ]