2009-11-09 9 views
2

Je suis intéressé par l'amélioration de ma capacité de conception (conception de classes avec ses propriétés, méthodes, etc.) pour une donnée donnée. c.-à-d. Comment décider quelles devraient être les classes, les méthodes et les propriétés?Classes de conception - Fonctions OOPS

Pouvez-vous me suggérer de bons matériaux pour améliorer cela?

+0

questions similaires posées sur SO plusieurs fois ..... –

+0

Mitch, j'ai fait quelques recherches de base sur le net. Puis j'ai pensé à demander dans le forum parce que j'obtiendrais de bons conseils. Par conséquent posé cette question –

+1

FYI - Certains gars m'ont également suggéré "HeadFirst: Object Oriented Analysis and Design". –

Répondre

1

C'est peut-être une question que chaque programmeur pense d'un jour. La capacité de conception vient avec votre expérience progressivement. Ce que je dirais est en général si vous pouvez visualiser les objets de base de données pour un problème donné, le reste est un cakewalk (n'est pas vrai parfois si vous travaillez sur un projet techie sans DB)

Vous pouvez commencer à penser aux objets qui interagissent dans le monde réel pour compléter le processus et ensuite les mapper en classes avec des propriétés appropriées et ensuite des méthodes pour définir leur comportement. Dix vous pouvez vous concentrer sur les classes qui contribuent à l'exécution du flux de travail et non à un objet réel du monde réel.

Cela devient beaucoup simplifié si nous nous concentrons sur la conception de la base de données avant de passer directement à la conception de code. Beaucoup dépend du motif que vous choisissez - Si vous voyez un problème du point de vue MVC, vous serez naturellement attiré par l'identification de la classe «contrôleur» d'abord et ainsi de suite. Je suppose que je n'ai pas besoin de répéter les sources d'or du design et de la sagesse OOPS - ils ont déjà posté ici ou là.

0

Donnez un look un Domain-DrivenDesign, qui définit les entités, les objets de valeur, les usines, les services et les dépôts et les GRASP patterns (responsabilité générale Modèles de logiciel d'affectation), par exemple Expert, Créateur, Contrôleur.

1

Je vous recommande de lire certains modèles UML et de conception. Cela vous permet d'aller de l'avant en termes de "dessin". Vous pouvez également obtenir une bonne compréhension d'une grande classe/objet beaucoup plus facile.

Un livre particulier qui est bon dans ce domaine. Applying UML and Patterns

0

Jetez un oeil à la partie 1 screencast la première partie n'est pas silverlight mais juste une calculatrice de ligne de commande qui commence comme un seul bit de code, et est ensuite décomposé en classes.

2
  1. Encapsulation: La place d'enveloppement des données et des fonctions dans une seule unité est connue comme encapsulation. Ou, tout simplement: mettre les données et les méthodes ensemble dans une seule unité peut être une classe.

  2. Héritage: Création des propriétés de la classe parente à la classe enfant. Ou: obtenir les propriétés de super classe à sous classe est connu comme héritage.

  3. Polymorphisme: La capacité de prendre plus d'une forme, il prend en charge la méthode surcharge et un procédé remplaçant.

    Surcharge de méthode: Lorsqu'une méthode dans une classe ayant le même nom de méthode avec différents arguments (paramètres diff ou signatures) est définie comme , surcharge de la méthode. C'est un polymorphisme de compilation - utilisant un identifiant pour désigner plusieurs éléments dans la même portée.

Questions connexes