Ho una classe UnitInfo
che rappresenta una raccolta di informazioni sull'unità con metodi per ottenere le informazioni sull'unità in modo strutturato, come una specifica codifica, ecc. Queste informazioni sull'unità sono costituite da informazioni che devono essere lette dall'unità tramite comunicazione porta seriale. Il costruttore della classe riceve il numero di serie, che non può essere interrogato dall'unità, e un'interfaccia di comunicazione seriale di istanza, che quindi utilizza per interrogare l'unità per le informazioni:
public class UnitInfo {
public int SerialNumber { get; }
public int InternalMemorySize { get; }
// And more properties...
public UnitInfo(ISerialCom serialCom, int serialNumber) {
SerialNumber = serialNumber;
InternalMemorySize = serialCom.GetInternalMemorySize();
// More serial communication to set more properties
}
// Get methods to retrieve all the unit information in a specific encoding
// i.e a collection of bytes.
}
Dalla mia navigazione SO e Google, capisco che di solito è normale lavorare in un costruttore, ma non ho ancora trovato un esempio di esecuzione di comunicazioni via seriale, GPIB, ecc. in un costruttore. Sto anche pensando che questa possa essere una violazione del principio di dipendenza dalla dipendenza in quanto la classe dipende da un'implementazione di un'interfaccia per inizializzarsi; è meglio passare tutte le informazioni sull'unità alla classe?