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?