Sfondo
Sto pensando di progettare un'interfaccia a schema di comando (GoF / comportamentale). Potrei decidere di chiamare questa cosa ICommand
. Sto pensando che avrei una specie di coda che contiene un mucchio di oggetti dell'interfaccia di comando. Vorrei esercitare la coda, chiamando il metodo di interfaccia Execute
per ciascuno degli elementi in questa coda come segue ...
DequeuedItem.Execute(); // invoke the command-pattern
Per ogni singolo articolo in coda, fino a esaurirlo.
L'implementazione per il calcestruzzo associato a Execute
può sembrare ...
// concrete implementation of execute
public void Execute()
{
mySerialPort.ReadExisting(); // read data from a serial port
}
Da quanto ho capito, usare le porte COM può essere complicato quando si tratta di chi possiede effettivamente la porta.
Inoltre, vi sono altri motivi per cui non dichiaro solo il SerialPort
all'interno dell'implementazione concreta. Ad esempio ... un sacco di comandi dovranno usare quella stessa porta (ma non allo stesso tempo). Quindi avrò bisogno di passare la porta seriale al concreto implementando ICommand
. Questo mi porta nella mia domanda ...
Domanda
Una porta seriale aperta funzionerà ancora dopo averla passata a un altro oggetto?
Anche se funzionasse, ci sono altre implicazioni di cui ho bisogno di essere consapevole?