Voglio che i miei oggetti Wire siano in collegamento con gli oggetti Port . Questo è Porta ha una lista di fili collegati e metodo Port.add(wire)
. Allo stesso modo, Wire ha un elenco di porte a cui è connesso e Wire.add(port)
.
class Port
Set[Wire] connections
method add(wire)joined)
class Wire
Set[Port] ports
method add(port)
Supponiamo ora che io usi uno di questi metodi, aggiungi una porta a un filo. Quel metodo dovrebbe chiamare port.add(this wire)
in risposta, per mantenere la coerenza. Ma chiamare port.add(wire)
dovrebbe fare la stessa cosa, dovrebbe chiamare wire.add(this port)
per mantenere la coerenza. Sarà un circolo vizioso. Come lo rompi? Ti
- controlla che l'oggetto sia già connesso e non faccia nulla in questo caso o
- crea un metodo di connessione principale, forzando tutti gli utenti a utilizzare, ad esempio
wire.add(port)
, che chiamerà dumbport.wires.add(wire)
e senza ulteriori chiamate - o qualsiasi altra cosa?