Supponiamo di avere 2 classi, Pilot
e Plane
, in una relazione uno-a-uno opzionale. Quindi un Plane
potrebbe avere un pilota quando sta volando, ma quando è nel suo hangar non ne ha. Simile per Pilot
.
Sarebbe semplicemente logico tenere un puntatore al Plane
in Pilot
e un puntatore al Pilot
in Plane
, accessibile tramite getter e setter.
Costruire i setter in modo che una chiamata su uno di essi stabilisca che la relazione bidirezionale è sorprendentemente difficile. Sono rimasto ancora più sorpreso dal fatto che non sono riuscito a trovare una soluzione adeguata sul web in quanto questo costrutto mi sembra comune.
Qualcuno sa di concetti che potrebbero incapsulare una tale relazione all'interno di una classe? O un idioma per rimanere con normali getter / setter e stabilire ancora la relazione con una chiamata setPilot / setPlane?