public class Ascenseur() { Bouton firstFloorbutton = ButtonFactory.getButtonInstance (this, 1); Bouton secondFloorbutton = ButtonFactory.getButtonInstance (this, 2); Bouton thirdFloorbutton = ButtonFactory.getButtonInstance (this, 3); Bouton fourthFloorbutton = ButtonFactory.getButtonInstance (this, 4);Has-A Relation
Fan fan1 = FanFactory.getFanInstance(this);
Light light1 = LightFactory.getInstance(this);
private void goUp()
{
.....
}
private void goDown()
{
......
}
.............
}
============================
public class Button()
{
Elevator E;
int floor;
public button (Elevator E, int floor)
{
this.E = E;
this.floor = floor;
}
public void buttonPressed()
{
//logic to determine which floor the elevator is currently at and determine whether to go up or down to reach "this.floor"
E.goUp(); // if need to go up
else
E.goDown() // if need to go down
}
}
==========================
public class ButtonFactory()
{
public Button getButtonInstance(Elevator E, int floor)
{
Button b =new Button(E, floor);
return b;
}
}
==================
public class FanFactory(){ .................}
=====================
public class LightFactory() { ........... }
==========================
Quel type de relation existe entre la classe Elevator et Button?
Selon Kathy et Bert (SCJP) page 92: Les relations HAS-A sont basées sur l'utilisation plutôt que sur l'héritage. En d'autres termes, classe A HAS-A B si le code dans la classe A a une référence à une instance de classe B.
Dans mon exemple, le code de classe Elevator a une référence à une instance de Button et Button avec une référence à l'instance. de classe d'ascenseur.
Quelqu'un peut-il s'il vous plaît préciser à ce sujet.
Bonne explication Tom. Merci. – AKh