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 ogniSubdevice
chiamaparseJSON
all'interno diCommunicator
o - Crea
Device::onParsedJson
chiamato 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)