L'héritage - la création de sous/super-classes - une ligne directrice...
Quand peut-on créer des sous/super-classes dans une Conception Orientée Objet?
la Conception Orientée Objet/Modélisation Visuelle
CET ARTICLE PEUT VOUS AIDER DANS LE DÉBUT ET les ÉTAPES INTERMÉDIAIRES DE l'ANALYSE ET de la CONCEPTION.
Comme chaque Objet Pascal développeur sait, l'héritage est l'un des concepts fondamentaux de la Conception Orientée Objet. Je ne vais pas vous donner une explication sur ce que l'Héritage est depuis que tout le monde connaît la définition déjà. Au lieu de cela, je vais vous donner quelques-uns des conseils dans la conception de classes dans les premiers stades de la Conception Orientée Objet.
Dans tout projet de développement, l'analyse et la conception des phases sera donnée l'importance de la phase initiale. Dans la Conception Orientée Objet/Modélisation Visuelle, une fois que l'équipe commence à collecter les informations concernant le projet, l'équipe identifiera les objets impliqués dans chacune des activités.
Au cours d'une étape, l'équipe aura des exemples de classes de ces objets identifiés. Comme l'étape de la conception, arrive à échéance, il n'y aurait plus de classes à venir. Parfois, vous devrez peut-être hériter d'une nouvelle classe à partir d'un existant ou vous pouvez avoir besoin de regrouper deux classes en une seule. À ce moment, vous pouvez utiliser les concepts suivants/les techniques pour créer un sous/super-classe à partir de classes existantes:
SPÉCIALISATION: la Création de Sous-Classes
Ce qui est une Sous-Classe et Super Classe:
C'est une classe héritée/dérivée d'une autre classe. La nouvelle classe(sous-classe) ont toutes les propriétés, méthodes et événements de la classe parent(dont elle a hérité) et peut avoir des propriétés supplémentaires spécifiques à la présente sous-classe. La classe parent est appelée Super-Classe.
Laissez-moi vous expliquer ce concept par un exemple.
supposons que nous ayons une classe appelée TCitizen.
La structure de TCitizen est quelque chose comme ceci:
TCitizen = Classe
& nbsp & nbsp & nbsp SocialSecurityNo : string
& nbsp & nbsp & nbsp Nom : chaîne de caractères
& nbsp & nbsp & nbsp Age : integer
& nbsp & nbsp & nbsp Rue : string
& nbsp & nbsp & nbsp Ville : string
& nbsp & nbsp & nbsp État : string
& nbsp & nbsp & nbsp Zip : integer
& nbsp & nbsp nbsp & ..................
& nbsp & nbsp nbsp & ..................etc.,
fin
Les attributs ci-dessus sont quelques-uns des attributs communs que vous pouvez avoir pour un Citoyen. Ce citoyen pourrait être n'importe qui à partir d'un petit enfant à un vieil homme dans un pays.
supposons que nous avons, dans notre analyse, certains anciens combattants de l'information aussi. Les anciens combattants sont des gens qui étaient dans l'Armée et/ou certains éminents services gouvernementaux et maintenant à la retraite. Ces anciens combattants sont également une partie de la vie des citoyens ordinaires, mais ils auraient des privilèges spéciaux. Dans ce cas, on peut utiliser l'existant TCitizen classe en ajoutant les privilèges spéciaux des attributs pour un Vétéran, mais qui ne serait pas une meilleure conception. Dans ce cas, on peut appeler ce Vétéran en tant qu'institution SPÉCIALISÉE des Citoyens. Nous pouvons donc créer une nouvelle SOUS-CLASSE dérivée de la TCitizen, appelé TVeteranCitizen.
La TVeteranCitizen classe peut ressembler à quelque chose comme ceci:
TVeteranCitizen = classe(TCitizen)
& nbsp & nbsp & nbsp NoOfYearsOfService : integer
& nbsp & nbsp & nbsp Récompenses : string
& nbsp & nbsp & nbsp Rangs : string
& nbsp & nbsp & nbsp DateRetired : TDateTime
& nbsp & nbsp nbsp & .........................................
& nbsp & nbsp nbsp & ......................................etc.,
fin
GÉNÉRALISATION: la Création de Super-Classes
Laissez-moi vous expliquer ce aussi thru quelques exemples de classes.
supposons que nous travaillons à la conception d'un système de la bibliothèque et nous avons identifié deux classes TStudent, contenant des renseignements sur l'étudiant, et TProfessor, contenant professeur à l'information, entre autres classes. Nous prenons ces deux classes de notre discussion.
La structure de ces deux classes serait comme suit:
TStudent = Classe
& nbsp & nbsp & nbsp StudentID : string
& nbsp & nbsp & nbsp Nom : chaîne de caractères
& nbsp & nbsp & nbsp Âge : string
& nbsp & nbsp & nbsp Note : chaîne de caractères
& nbsp & nbsp nbsp & ........................
& nbsp & nbsp nbsp & .....................etc.,
fin
TProfessor = Classe
& nbsp & nbsp & nbsp ProfID : string
& nbsp & nbsp & nbsp Nom : chaîne de caractères
& nbsp & nbsp & nbsp Âge : string
& nbsp & nbsp nbsp & ....................
& nbsp & nbsp nbsp & ................etc.,
fin
Le système permettra à la fois les étudiants et les professeurs pour vous connecter à l'aide de leurs étudiants et le professeur de l'ids et de faire de la bibliothèque activités connexes. Le système vérifiera l'étudiant et le professeur id au moment de la connexion.
Ici, nous pouvons GÉNÉRALISER une information concernant les classes, aussi longtemps qu'ils tous les deux d'accord dans leur structure et leur type. Je parle les deux attributs StudentID dans TStudent et ProfID dans TProfessor. Dans ce cas, ils sont tous deux du même type: Chaîne de caractères. La deuxième chose, c'est que les deux doivent être de la même structure/taille de la chaîne. Si StudentID est de sept charactors longueur et ProfID est de quatre charactors longueur, alors nous ne pouvons pas généraliser cette info.
tant Que les deux d'accord sur ces deux choses, on peut généraliser.
Ils sont à la fois servir comme un moyen de se connecter au système après vérification. Nous pouvons donc GÉNÉRALISER ces informations et de créer un SUPER CLASSE avec un nom TUser et hériter à la fois TStudent et TProfessor de TUser.
Bien que cela semble être une question simple, j'aimerais juste partager avec nos Delphi Communauté.
Profitez-en!!!
Merci.
Magesh.
L'heritage - la creation de sous/super-classes - une ligne directrice...
L'heritage - la creation de sous/super-classes - une ligne directrice... : Plusieurs milliers de conseils pour vous faciliter la vie.
Quand peut-on creer des sous/super-classes dans une Conception Orientee Objet?
la Conception Orientee Objet/Modelisation Visuelle
CET ARTICLE PEUT VOUS AIDER DANS LE DEBUT ET les ETAPES INTERMEDIAIRES DE l'ANALYSE ET de la CONCEPTION.
Comme chaque Objet Pascal developpeur sait, l'heritage est l'un des concepts fondamentaux de la Conception Orientee Objet. Je ne vais pas vous donner une explication sur ce que l'Heritage est depuis que tout le monde connaît la definition deja. Au lieu de cela, je vais vous donner quelques-uns des conseils dans la conception de classes dans les premiers stades de la Conception Orientee Objet.
Dans tout projet de developpement, l'analyse et la conception des phases sera donnee l'importance de la phase initiale. Dans la Conception Orientee Objet/Modelisation Visuelle, une fois que l'equipe commence a collecter les informations concernant le projet, l'equipe identifiera les objets impliques dans chacune des activites.
Au cours d'une etape, l'equipe aura des exemples de classes de ces objets identifies. Comme l'etape de la conception, arrive a echeance, il n'y aurait plus de classes a venir. Parfois, vous devrez peut-etre heriter d'une nouvelle classe a partir d'un existant ou vous pouvez avoir besoin de regrouper deux classes en une seule. A ce moment, vous pouvez utiliser les concepts suivants/les techniques pour creer un sous/super-classe a partir de classes existantes:
SPECIALISATION: la Creation de Sous-Classes
Ce qui est une Sous-Classe et Super Classe:
C'est une classe heritee/derivee d'une autre classe. La nouvelle classe(sous-classe) ont toutes les proprietes, methodes et evenements de la classe parent(dont elle a herite) et peut avoir des proprietes supplementaires specifiques a la presente sous-classe. La classe parent est appelee Super-Classe.
Laissez-moi vous expliquer ce concept par un exemple.
supposons que nous ayons une classe appelee TCitizen.
La structure de TCitizen est quelque chose comme ceci:
TCitizen = Classe
& nbsp & nbsp & nbsp SocialSecurityNo : string
& nbsp & nbsp & nbsp Nom : chaîne de caracteres
& nbsp & nbsp & nbsp Age : integer
& nbsp & nbsp & nbsp Rue : string
& nbsp & nbsp & nbsp Ville : string
& nbsp & nbsp & nbsp Etat : string
& nbsp & nbsp & nbsp Zip : integer
& nbsp & nbsp nbsp & ..................
& nbsp & nbsp nbsp & ..................etc.,
fin
Les attributs ci-dessus sont quelques-uns des attributs communs que vous pouvez avoir pour un Citoyen. Ce citoyen pourrait etre n'importe qui a partir d'un petit enfant a un vieil homme dans un pays.
supposons que nous avons, dans notre analyse, certains anciens combattants de l'information aussi. Les anciens combattants sont des gens qui etaient dans l'Armee et/ou certains eminents services gouvernementaux et maintenant a la retraite. Ces anciens combattants sont egalement une partie de la vie des citoyens ordinaires, mais ils auraient des privileges speciaux. Dans ce cas, on peut utiliser l'existant TCitizen classe en ajoutant les privileges speciaux des attributs pour un Veteran, mais qui ne serait pas une meilleure conception. Dans ce cas, on peut appeler ce Veteran en tant qu'institution SPECIALISEE des Citoyens. Nous pouvons donc creer une nouvelle SOUS-CLASSE derivee de la TCitizen, appele TVeteranCitizen.
La TVeteranCitizen classe peut ressembler a quelque chose comme ceci:
TVeteranCitizen = classe(TCitizen)
& nbsp & nbsp & nbsp NoOfYearsOfService : integer
& nbsp & nbsp & nbsp Recompenses : string
& nbsp & nbsp & nbsp Rangs : string
& nbsp & nbsp & nbsp DateRetired : TDateTime
& nbsp & nbsp nbsp & .........................................
& nbsp & nbsp nbsp & ......................................etc.,
fin
GENERALISATION: la Creation de Super-Classes
Laissez-moi vous expliquer ce aussi thru quelques exemples de classes.
supposons que nous travaillons a la conception d'un systeme de la bibliotheque et nous avons identifie deux classes TStudent, contenant des renseignements sur l'etudiant, et TProfessor, contenant professeur a l'information, entre autres classes. Nous prenons ces deux classes de notre discussion.
La structure de ces deux classes serait comme suit:
TStudent = Classe
& nbsp & nbsp & nbsp StudentID : string
& nbsp & nbsp & nbsp Nom : chaîne de caracteres
& nbsp & nbsp & nbsp Age : string
& nbsp & nbsp & nbsp Note : chaîne de caracteres
& nbsp & nbsp nbsp & ........................
& nbsp & nbsp nbsp & .....................etc.,
fin
TProfessor = Classe
& nbsp & nbsp & nbsp ProfID : string
& nbsp & nbsp & nbsp Nom : chaîne de caracteres
& nbsp & nbsp & nbsp Age : string
& nbsp & nbsp nbsp & ....................
& nbsp & nbsp nbsp & ................etc.,
fin
Le systeme permettra a la fois les etudiants et les professeurs pour vous connecter a l'aide de leurs etudiants et le professeur de l'ids et de faire de la bibliotheque activites connexes. Le systeme verifiera l'etudiant et le professeur id au moment de la connexion.
Ici, nous pouvons GENERALISER une information concernant les classes, aussi longtemps qu'ils tous les deux d'accord dans leur structure et leur type. Je parle les deux attributs StudentID dans TStudent et ProfID dans TProfessor. Dans ce cas, ils sont tous deux du meme type: Chaîne de caracteres. La deuxieme chose, c'est que les deux doivent etre de la meme structure/taille de la chaîne. Si StudentID est de sept charactors longueur et ProfID est de quatre charactors longueur, alors nous ne pouvons pas generaliser cette info.
tant Que les deux d'accord sur ces deux choses, on peut generaliser.
Ils sont a la fois servir comme un moyen de se connecter au systeme apres verification. Nous pouvons donc GENERALISER ces informations et de creer un SUPER CLASSE avec un nom TUser et heriter a la fois TStudent et TProfessor de TUser.
Bien que cela semble etre une question simple, j'aimerais juste partager avec nos Delphi Communaute.
Profitez-en!!!
Merci.
Magesh.
L'héritage - la création de sous/super-classes - une ligne directrice...
By commentfaire
L'héritage - la création de sous/super-classes - une ligne directrice... : Plusieurs milliers de conseils pour vous faciliter la vie.