IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Classes correctes ?


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 128
    Points : 61
    Points
    61
    Par défaut Classes correctes ?
    Bonjour,

    N'ayant pas l'habitude des classes, j'aurais besoin d'avis.
    Je viens de réaliser des classes et je voudrais savoir si tout semble correct, ce qui peut être amélioré et pourquoi.

    Merci de votre aide.

    Exemple d'utilisation
    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
     
            Dim a As New AdaptationLogement(New AdaptationLogement.Logement(1, 1, 1), 14, 100)
            a.Logements.Add(New AdaptationLogement.Logement(2, 2, 1))
            a.Logements.Add(New AdaptationLogement.Logement(3, 2, 1))
            a.Logements.Add(New AdaptationLogement.Logement(4, 3, 2))
            a.Logements.Add(New AdaptationLogement.Logement(5, 3, 2))
            a.Logements.Add(New AdaptationLogement.Logement(6, 4, 2))
            a.Logements.Add(New AdaptationLogement.Logement(7, 4, 2))
            a.Logements.Add(New AdaptationLogement.Logement(8, 4, 2))
     
            Dim montantOs As Decimal = a.Montant
            Dim montantMaille1 As Decimal = a.MontantMaille(1)
            Dim montantMaille2 As Decimal = a.MontantMaille(2)
     
            Dim montantBat1 As Decimal = a.MontantBatiment(1)
            Dim montantBat2 As Decimal = a.MontantBatiment(2)
            Dim montantBat3 As Decimal = a.MontantBatiment(3)
            Dim montantBat4 As Decimal = a.MontantBatiment(4)
     
            Dim b As New AdaptationLogement(15, 500)
            b.Logements.Add(New AdaptationLogement.Logement(10, 5, 5))
            b.Logements.Add(New AdaptationLogement.Logement(11, 6, 5))
            b.Logements.Add(New AdaptationLogement.Logement(12, 6, 5))
     
            Dim z As New AdaptationLogementCollection()
            z.Add(a)
            z.Add(b)
     
            Dim total As Decimal = z.Somme
            Dim totalBat As Decimal = z.SommeBatiment(2)
            Dim totalMail As Decimal = z.SommeMaille(4)
     
     
            Dim m As New AdaptationOuvrage(77, 250)
            m.Maille.Add(New AdaptationOuvrage.OuvrageMaille(2, 5))
            m.Maille.Add(New AdaptationOuvrage.OuvrageMaille(3, 10))
     
            Dim n As New AdaptationOuvrage(770, 1000)
            n.Maille.Add(New AdaptationOuvrage.OuvrageMaille(3, 8))
     
            Dim TotalOuv_m = m.Montant()
            Dim TotalOuvMaille = m.MontantMaille(3)
     
            Dim macollectOuv As New AdaptationOuvrageCollection
            macollectOuv.Add(m)
            macollectOuv.Add(n)
     
            Dim sommeMaille3 = macollectOuv.SommeMaille(3)
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
     
    Public MustInherit Class Adaptation
     
            Private _mIdAdaptation As Long
            Public Property IdAdaptation() As Long
                Get
                    Return _mIdAdaptation
                End Get
                Set(ByVal value As Long)
                    _mIdAdaptation = value
                End Set
            End Property
     
            Private _mForfait As Decimal
            Public Property Forfait() As Decimal
                Get
                    Return _mForfait
                End Get
                Set(ByVal value As Decimal)
                    _mForfait = value
                End Set
            End Property
     
            Public Sub New(ByVal idAdaptation As Long, ByVal forfait As Decimal)
                If idAdaptation <= 0 Then Throw New ArgumentNullException("idAdaptation", "Identifiant non défini.")
                _mIdAdaptation = idAdaptation
                _mForfait = forfait
            End Sub
     
        End Class
     
        Public Class AdaptationLogement
            Inherits Adaptation
     
            Structure Logement
                Private _mIdLogement As Long
                Public ReadOnly Property idLogement() As Long
                    Get
                        Return _mIdLogement
                    End Get
                End Property
     
     
                Private _mIdBatiment As Long
                Public ReadOnly Property idBatiment() As Long
                    Get
                        Return _mIdBatiment
                    End Get
                End Property
     
                Private _mIdMaille As Long
                Public ReadOnly Property idMaille() As Long
                    Get
                        Return _mIdMaille
                    End Get
                End Property
     
                Public Sub New(ByVal idLogement As Long, ByVal idBatiment As Long, ByVal idMaille As Long)
                    _mIdLogement = idLogement
                    _mIdBatiment = idBatiment
                    _mIdMaille = idMaille
                End Sub
     
            End Structure
     
            Private _mLogement As List(Of Logement) = New List(Of Logement)
            Public Property Logements() As List(Of Logement)
                Get
                    Return _mLogement
                End Get
                Set(ByVal value As List(Of Logement))
                    _mLogement = value
                End Set
            End Property
     
            Public Sub New(ByVal idAdaptation As Long, ByVal forfait As Decimal)
                MyBase.New(idAdaptation, forfait)
            End Sub
     
            Public Sub New(ByVal logement As Logement, ByVal idAdaptation As Long, ByVal forfait As Decimal)
                MyBase.New(idAdaptation, forfait)
                _mLogement.Add(logement)
            End Sub
     
            Public Function Montant() As Decimal
                Return Forfait * Logements.Count
            End Function
     
            Public Function MontantBatiment(ByVal idBatiment As Long) As Decimal
                Dim nbLogt As Integer = Logements.Count
                Dim nbLogtBat As Integer = 0
     
                For i As Integer = 0 To nbLogt - 1
                    If Logements(i).idBatiment = idBatiment Then nbLogtBat += 1
                Next
     
                Return Forfait * nbLogtBat
            End Function
     
            Public Function MontantMaille(ByVal idMaille As Long) As Decimal
                Dim nbLogt As Integer = Logements.Count
                Dim nbLogtMaille As Integer = 0
     
                For i As Integer = 0 To nbLogt - 1
                    If Logements(i).idMaille = idMaille Then nbLogtMaille += 1
                Next
     
                Return Forfait * nbLogtMaille
            End Function
     
        End Class
     
        Public Class AdaptationOuvrage
            Inherits Adaptation
     
            Structure OuvrageMaille
                Private _mIdMaille As Long
                Public ReadOnly Property IdMaille() As Long
                    Get
                        Return _mIdMaille
                    End Get
                End Property
     
                Private _mNbOuvrage As Integer
                Public ReadOnly Property NbOuvrage() As Integer
                    Get
                        Return _mNbOuvrage
                    End Get
                End Property
     
     
                Public Sub New(ByVal idMaille As Long, ByVal nbOuvrage As Integer)
                    If idMaille <= 0 Then Throw New ArgumentNullException("idMaille", "Identifiant non défini.")
                    If nbOuvrage < 0 Then Throw New ArgumentOutOfRangeException("nbOuvrage", "valeur incorrect.")
     
                    _mIdMaille = idMaille
                    _mnbOuvrage = nbOuvrage
                End Sub
            End Structure
     
            Private _mMaille As List(Of OuvrageMaille) = New List(Of OuvrageMaille)
            Public Property Maille() As List(Of OuvrageMaille)
                Get
                    Return _mMaille
                End Get
                Set(ByVal value As List(Of OuvrageMaille))
                    _mMaille = value
                End Set
            End Property
     
     
            Public Sub New(ByVal idAdaptation As Long, ByVal forfait As Decimal)
                MyBase.New(idAdaptation, forfait)
            End Sub
     
            Public Function Montant() As Decimal
     
                Dim nbMaille As Integer = Maille.Count
                Dim total As Decimal = 0
                For i As Integer = 0 To nbMaille - 1
                    total += Forfait * Maille(i).NbOuvrage
                Next
                Return total
            End Function
     
            Public Function MontantMaille(ByVal idMaille As Long) As Decimal
     
                Dim nbMaille As Integer = Maille.Count
                Dim total As Decimal = 0
     
                For i As Integer = 0 To nbMaille - 1
                    If Maille(i).IdMaille = idMaille Then total += Forfait * Maille(i).NbOuvrage
                Next
                Return total
            End Function
     
        End Class
     
        Public Class AdaptationLogementCollection
            Inherits CollectionBase
     
            Default Public Property Item(ByVal index As Integer) As AdaptationLogement
                Get
                    Return DirectCast(List.Item(index), AdaptationLogement)
                End Get
                Set(ByVal value As AdaptationLogement)
                    List.Item(index) = value
                End Set
            End Property
     
            Public Sub Add(ByVal value As AdaptationLogement)
                List.Add(value)
            End Sub
     
            Public Sub Remove(ByVal value As AdaptationLogement)
                List.Remove(value)
            End Sub
     
            Public Function Somme()
                Dim total As Decimal = 0
                Dim nbElement As Integer = Me.List.Count
                Dim AdaptationLogement As AdaptationLogement
     
                For i As Integer = 0 To nbElement - 1
                    AdaptationLogement = Me.List.Item(i)
                    total += AdaptationLogement.Montant
                Next
     
                Return total
            End Function
     
            Public Function SommeBatiment(ByVal idBatiment As Long)
                Dim total As Decimal = 0
                Dim nbElement As Integer = Me.List.Count
                Dim AdaptationLogement As AdaptationLogement
     
                For i As Integer = 0 To nbElement - 1
                    AdaptationLogement = Me.List.Item(i)
                    total += AdaptationLogement.MontantBatiment(idBatiment)
                Next
     
                Return total
            End Function
     
            Public Function SommeMaille(ByVal idMaille As Long)
                Dim total As Decimal = 0
                Dim nbElement As Integer = Me.List.Count
                Dim AdaptationLogement As AdaptationLogement
     
                For i As Integer = 0 To nbElement - 1
                    AdaptationLogement = Me.List.Item(i)
                    total += AdaptationLogement.MontantMaille(idMaille)
                Next
     
                Return total
            End Function
     
     
     
        End Class
     
        Public Class AdaptationOuvrageCollection
            Inherits CollectionBase
     
            Default Public Property Item(ByVal index As Integer) As AdaptationOuvrage
                Get
                    Return DirectCast(List.Item(index), AdaptationOuvrage)
                End Get
                Set(ByVal value As AdaptationOuvrage)
                    List.Item(index) = value
                End Set
            End Property
     
            Public Sub Add(ByVal value As AdaptationOuvrage)
                List.Add(value)
            End Sub
     
            Public Sub Remove(ByVal value As AdaptationOuvrage)
                List.Remove(value)
            End Sub
     
            Public Function Somme() As Decimal
                Dim nbElement As Integer = List.Count
                Dim AdaptationOuvrage As AdaptationOuvrage
                Dim total As Decimal = 0
     
                For i As Integer = 0 To nbElement - 1
                    AdaptationOuvrage = List(i)
                    total += AdaptationOuvrage.Montant()
                Next
     
                Return total
            End Function
     
            Public Function SommeMaille(ByVal idMaille) As Decimal
                Dim nbElement As Integer = List.Count
                Dim AdaptationOuvrage As AdaptationOuvrage
                Dim total As Decimal = 0
     
                For i As Integer = 0 To nbElement - 1
                    AdaptationOuvrage = List(i)
                    total += AdaptationOuvrage.MontantMaille(idMaille)
                Next
     
                Return total
            End Function
     
        End Class
    -----------------------------------------
    à l'origine PHP/Mysql. Pro : Asp.net/Vb/SQL/Webform siteweb

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    N'ayant pas eu de retour, je suppose que c'est bon.

    Par contre je suis complètement bloqué, sur le fait que je doit remplir cette classe via SqlServer.

    Dois-je intégrer des fonctions de connexion, de récupération des données dans les classes ci dessus ?

    Comment savoir si le contenu de mon instance est issu de la base de donnée ou renseigner comme ça ?

    La récupération de mes adaptations peuvent se faire de plusieurs manières via un identifiant "Os" ou via un identifiant "Agence", donc j'aurais 2 méthodes de remplissage.

    Merci d'avance pour votre aide.
    -----------------------------------------
    à l'origine PHP/Mysql. Pro : Asp.net/Vb/SQL/Webform siteweb

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    le jour où j'ai lu les classes elles m'avaient l'air propre en effet

    concernant l'accès aux données, dans certains design le code de remplissage est dans les classes de données, parfois non
    c'est donc un choix à faire ...

    en théorie on a une clé primaire auto incrément sur une table, donc si on créé une instance en vue de saisie par l'utilisateur, on la reconnait par son id = nothing (si type nullable) ou 0 sinon
    on sait alors qu'il faudra faire un insert après validation de l'utilisateur et éventuellement du code de validation des données
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    le jour où j'ai lu les classes elles m'avaient l'air propre en effet

    concernant l'accès aux données, dans certains design le code de remplissage est dans les classes de données, parfois non
    c'est donc un choix à faire ...

    en théorie on a une clé primaire auto incrément sur une table, donc si on créé une instance en vue de saisie par l'utilisateur, on la reconnait par son id = nothing (si type nullable) ou 0 sinon
    on sait alors qu'il faudra faire un insert après validation de l'utilisateur et éventuellement du code de validation des données
    Désolé de ne pas avoir répondu hier, j'ai eu la notification juste avant que l'on soit coupé du net, c'est revenu au moment de partir.

    Ok, j'ai intégré mes requêtes dans des méthodes de la classe ne voyant pas comment faire "interagir" et nommer mes classes d'accès au données.

    J'ai du étoffer mon code :

    Dans ma classe adaptationOuvrage, j'ai renommé 2 méthodes et ajouté 2 autres. Je ne voyait pas comment faire autrement, je m'explique ensuite.

    La structure de l'Os est la même que la maille, je la mets pas ci dessous pour ne pas surcharger.

    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
     
    Public Function MontantMaille() As Decimal
     
                Dim nbMaille As Integer = Maille.Count
                Dim total As Decimal = 0
                For i As Integer = 0 To nbMaille - 1
                    total += Forfait * Maille(i).NbOuvrage
                Next
                Return total
            End Function
     
     
            Public Function MontantOs() As Decimal
     
                Dim nbOs As Integer = Os.Count
                Dim total As Decimal = 0
                For i As Integer = 0 To nbOs - 1
                    total += Forfait * Os(i).NbOuvrage
                Next
                Return total
            End Function
     
     
            Public Function MontantMaille(ByVal idMaille As Long) As Decimal
     
                Dim nbMaille As Integer = Maille.Count
                Dim total As Decimal = 0
     
                For i As Integer = 0 To nbMaille - 1
                    If Maille(i).IdMaille = idMaille Then total += Forfait * Maille(i).NbOuvrage
                Next
                Return total
            End Function
     
            Public Function MontantOs(ByVal idOs As Long) As Decimal
     
                Dim nbOs As Integer = Os.Count
                Dim total As Decimal = 0
     
                For i As Integer = 0 To nbOs - 1
                    If Os(i).IdOs = idOs Then total += Forfait * Os(i).NbOuvrage
                Next
                Return total
     
            End Function
    Explications :
    Les Mailles sont des regroupements de bâtiments
    Les Os sont également des regroupements de bâtiments
    Les Os comportent des mailles.

    Je vais devoir expliquer le processus de fonctionnement :
    L'utilisateur doit distribuer dans un applicatif des adaptations ouvrage au Os.
    exemple, sur son programme("un chantier") il a 10 ouvrages qu'il doit répartir sur 3 Os, le tout est sauvegarder dans une table (idOuvrageSpecifique,idOs,nbOuvrage)

    Dans une autre logiciel on fait des calculs etc... pour avoir des coûts au niveau Os.
    à un moment lorsque l'on va effectuer des démarches, on va quantifier à une échelle plus petite, d'où le découpage en maille. Il faut donc que l'on répartisse les ouvrages que l'on a à l'Os sur les mailles (nouvelle table, encore inexistante)

    voilà pourquoi j'ai intégré les 2 dans la même classe, pour faire mes calculs en fonction de l'endroit où je me trouve dans mon logiciel. Bien sûr je veux éviter de mélanger les 2 lors des instances.

    J'ai forcément aussi doublé mes méthodes dans ma collection d'adaptation ouvrage.
    - SommeMaille() As Decimal appelant MontantMaille
    - SommeMaille(idMaille) As Decimal appelant MontantMaille(idMaille)

    - SommeOs() As Decimal appelant MontantOs
    - SommeOs(idOs) As Decimal appelant MontantOs(idOs)

    Pour compliquer la chose, j'ai mon forfait de l'adaptation qui vient soit du programme, soit de l'Os (c'est à dire que l'on est arrivé à une étape dans le logiciel ou le forfait à été fixé). bien sûr chacun étant stocké dans des tables différents car, dans un programme on peut avoir plusieurs Os et donc le forfait du programme peut évolué, celui-ci étant "copier" à l'Os lors d'une étape dans le logiciel.

    Pour mes méthodes d'accès aux données pour remplir cette collection, j'ai 4 sources remplissages différents :

    - Les ouvrages ont été définis sur les Os
    - Les ouvrages ont été définis sur les Maille

    - Mon forfait est au programme
    - Mon forfait est à l'Os

    et pour limiter les requêtes je préfère le faire en 1 requête/cas (elle sont déjà créer).

    Bref j'essaie de faire claire pour tout ça. Qu'elle est la meilleur solution ?
    car en gros, on peut vite se mélanger les pinceaux en remplissant les données mais en effectuant la mauvaise méthode pour le calcul.

    Exemple, on rempli depuis les ouvragesOs et l'on calcul le montant à la maille.
    Et rendre mes méthodes avec des noms simplement compréhensible n'est pas chose aisée en plus.

    Merci de votre aide, ou devrais-je dire sauvetage !
    -----------------------------------------
    à l'origine PHP/Mysql. Pro : Asp.net/Vb/SQL/Webform siteweb

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    pas compris grand chose

    mais avec des collections et des interfaces il y a surement moyen de faire quelque chose
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    pas compris grand chose

    mais avec des collections et des interfaces il y a surement moyen de faire quelque chose
    Ok, je ne vais pas trop rentrer dans le détail, je sais que c'est compliqué.

    Donc d'après ta réponse, il faut que je sépare ce qui est des adaptations ouvrage définies à la maille de celles définies à l'Os.

    Dans les 2 cas j'ai ma liste basé sur une structure id + nbElements

    Je peux donc faire 2 classes, pour les mailles et l'autre pour les Os. Je peux donc aussi faire comme pour ma classe mère un héritage obligatoire.

    Faire ma collection basé sur une interface.
    j'ai regardé ceci : http://www.dotnetperls.com/interface-vbnet

    que j'ai compris, mais que je vois pas comment appliqué à ma collection du fait de 2 "noms" différents pour mes paramètres en fonction du contexte.
    Je vais essayé de faire un petit squelette.
    -----------------------------------------
    à l'origine PHP/Mysql. Pro : Asp.net/Vb/SQL/Webform siteweb

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 128
    Points : 61
    Points
    61
    Par défaut
    Voilà, j'ai fais un squelette (ci joint) avec le concepteur de classe. Je n'ai mis que la partie non lié au logements.

    On voit que j'ai une partie "commune" mes structures qu'il faudrait je pense mettre en commun dans une classe identifiant/Nombre

    J'ai 2 méthodes "similaire" dans ma classe CMaille et Cos
    - Somme
    - Somme (idMaille) pour filtrer sur la maille, et Somme(idOs) pour les Os

    En voyant ça je me dis que je pourrais avoir une interface pour ces 2 classes.

    Mais voilà pourquoi faire une interface , que je gère d'un côté des Os ou des Maille au final c'est exactement la même chose pour les calculs. Donc tout peut être je pense gérer dans 1 seule classe d'ouvrage.

    Ainsi ma collection s'appuie aussi directement sur cette classe d'adapationOuvrage

    Je pense que j'ai voulu séparer les deux alors que ce n'est que le type de contenu qui change.
    Images attachées Images attachées  
    -----------------------------------------
    à l'origine PHP/Mysql. Pro : Asp.net/Vb/SQL/Webform siteweb

Discussions similaires

  1. ce diagramme de classe, correct? [aide pour PFE]
    Par hamzawii dans le forum UML
    Réponses: 4
    Dernier message: 30/05/2011, 12h00
  2. Classe correcte ?
    Par kazuzu dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 22/06/2010, 07h16
  3. [DEBUTANT] Diagramme de classe correct ?
    Par nuhuruine dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 07/06/2010, 09h10
  4. Comment créer une classe correctement
    Par oasiscreation dans le forum Langage
    Réponses: 1
    Dernier message: 15/12/2009, 23h03
  5. correction d'une classe point.
    Par deubelte dans le forum C++
    Réponses: 12
    Dernier message: 20/05/2007, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo