Bonsoir à tous,
J'aimerais un conseil d'ordre général sur la structure des applis en c#
J'ai une classe "User" dans laquelle j'ai plusieurs méthodes qui interrogent une base sql pour récupérer des données.
Chaque fois que j'instancie cette classe, je n'ai pas besoin de l'ensemble des données.
Je suis donc partagé entre l'aspect "pratique" en récupérant toutes les données lors de l'instanciation et l'aspect "performance" en ne récupérant les données que lorsque j'en ai besoin.
Voici mes 2 options :
Comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 class User
    {
        private int _id;
        private List<ClassA> _infos;
        private List<ClassB> _sites;
        private List<ClassC> _contacts;
 
        public User(int iD)
        {
            _id = iD;
            GetInfos();
            GetSites();
            GetContacts();
            //etc...
        }
        private void GetInfos()
        {
            _infos =....;
        }
        private void GetSites()
        {
            _sites =....;
        }
        //etc...
 
        public List<ClassA> Infos
        {
            get
            {
                return _infos;
            }
        }
        public List<ClassB> Sites
        {
            get
            {
                return _sites;
            }
        }
    }
    class Main
    {
        User _actualUser = new User(1);
        DoSomething(_actualUser.Infos);
        ///bla,bla,bla
        DoSomething(_actualUser.Sites);
        ///bla,bla,bla
    }
ou comme celà
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
class User
    {
        private int _id;
        private List<ClassA> _infos;
        private List<ClassB> _sites;
        private List<ClassC> _contacts;
 
        public User(int iD)
        {
            _id = iD;
        }
        public void GetInfos()
        {
            _infos =....;
        }
        public void GetSites()
        {
            _sites =....;
        }
        //etc...
 
        public List<ClassA> Infos
        {
            get
            {
                return _infos;
            }
        }
        public List<ClassB> Sites
        {
            get
            {
                return _sites;
            }
        }
    }
    class Main
    {
        User _actualUser = new User(1);
        _actualUser.GetInfos();
        DoSomething(_actualUser.Infos);
        ///bla,bla,bla
        _actualUser.GetSites();
        DoSomething(_actualUser.Sites);
        ///bla,bla,bla
    }
Merci pour vos conseils/expériences avisés