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?