BDoo
Le comportement des objets se spécifie via le concept de méthode.
Méthode : Algorithme (fonction, procédure) qui détermine les propriétés dynamiques d’un objet (on peut la voir comme attribut virtuel calculé)
En R-O, on distingue 3 types de méthodes :
MEMBER : attachées aux objets d’une classe
Elles permettent de mettre en œuvre le concept d’attribut virtuel calculé.
L’objet sur lequel s’applique la méthode est désigné par la variable SELF.
La spécification d’une méthode nécessite la spécification de :
-
Sa signature (partie visible, partageable)
Son corps (partie cachée, privée) : sous la responsabilité de son créateur
La spécification du corps des méthodes doit respecter le principe d’encapsulation. Le corps des méthodes doit s’écrire à partir du graphe de type uniquement en faisant abstraction des collections.
Dans le corps d’une méthode on ne doit pas utiliser de requêtes en SQL-RO.
Signature :
TYPE METHODE
TYPERESULTAT]
{FUNCTION|PROCEDURE}
NOM
METHODE
[(PARAMETRES)}
[RETURN
{|…|} Choix
[] : Option
[RETURN TYPERESULTAT] : uniquement pour FUNCTION
Paramètres : IN (par défaut) pour paramètres d’entrée et OUT pour paramètres résultats. Pour
FUNCTION, tous les paramètres sont IN
On spécifie la signature :
-
Soit lors de la création du type auquel se rattache la méthode
Soit ultérieurement à la création par adjonction de signature via ALTER
LIGNES_TY
X
No_ligne
ETAPES
(ETAPES_TAB_TY)
nbEtapes()
nomLigne()
*
ETAPE_TY
X
st
Pos
nomSt kms
STATIONS_TY
X
nomSt
ACCES
LIGNES SR
nbEtapes : compte le nombre d’étapes d’une ligne nomLigne : nom d’une ligne nom nom1ereStation || nom DerniereStation
Spécification des signatures :
-
A la création :
CREATE OR REPLACE TYPE Lignes_TY AS OBJECT (
No_ligne NUMBER(4),
Etapes ETAPES_TAB_TY,
duree
MEMBER FUNCTION ETAPES RETURN NUMBER)
-
/