Sto implementando un protocollo di messaggistica tra i nodi su una rete e mi chiedo come esporre l'interfaccia del sistema di messaggistica ai programmatori. Il protocollo di messaggistica supporta un insieme di comandi che i client e i server possono scambiare per portare a termine i lavori.
Per essere generico, diciamo, ad esempio, il sistema supporta 2 operazioni: REQUEST_OBJECT, MODIFY_OBJECT. Per fornire un'interfaccia, ho 2 scelte: se fornire 2 metodi distinti: request_object (handle, obj)
e modify_object (handle, obj, data)
o utilizzare un metodo generico: msg_ioctl (handle, COMMANDE, var_args ...)
, il numero di argomenti variadici var_args ...
e la loro interpretazione dipende esclusivamente da COMMANDE
quindi in questo caso avremo 2 casi diversi per la chiamata ioctl: msg_ioctl (handle, REQUEST, obj)
e msg_ioctl (handle, MODIFY, obj, data)
.
Quali sono i vantaggi e gli svantaggi di ciascuna opzione e quali potrebbero essere i possibili difetti che possono diventare visibili a lungo termine prendendo in considerazione diversi linguaggi che potrebbero essere utilizzati (Per discutere di argomenti come il controllo del tipo di argomento ... ecc. ) per implementare un tale sistema?