Sono bloccato su una domanda leggermente filosofica per me. Ho tre lezioni e non sono sicuro di come renderle correlate l'una con l'altra. Ho pochi approcci in competizione tutti in piedi su un piano uguale per me e non sono sicuro di quale abbia più svantaggi e vantaggi.
Ad esempio sto progettando un sistema in cui posso comandare un dispositivo (ei suoi sottodispositivi) tramite Communicator:
- Dispositivo (ad esempio Computer)
- Sottodispositivo (ad esempio mouse, tastiera, schermo)
- Communicator (ad es. rete)
Device crea e trattiene oggetti Subdevice . E il dispositivo crea Communicator . Ora diciamo che c'è JSON che entra in Communicator e deve essere passato a ciascuno di Device 's Subdevice (ex parseJSON() metodo)
I I:
- Crea
Device::GetSubdevices()e per ogniSubdevicechiamaparseJSONall'interno diCommunicatoro - Crea
Device::onParsedJsonchiamato daCommunicator, dove I iterate e instrado aSubdevice - Fai qualcos'altro
La prima scelta sembra portare la responsabilità di Device a Communicator che non è buona. Ma la seconda scelta rende Device (+) gestire l'interfaccia responsabilmente (-) pollutes (anche se è interfacciata)