Il byte di wrapping [] è una buona pratica di battitura?

2

Sto lavorando su una libreria basata su Java che fa uso delle richieste PKCS # 10. Esistono librerie PKCS # 10 disponibili per Java (librerie Sun e IBM fornite con i rispettivi JDK) e la libreria Bouncy Castle open-source.

Preferirei non associare la mia libreria ad un'altra tramite l'API, quindi il mio primo pensiero è stato quello di creare un wrapper. Tuttavia, PKCS # 10 è potenzialmente complesso, quindi l'ambito del wrapper si espanderebbe abbastanza rapidamente, e gli utenti di quel wrapper probabilmente "scartano" il wrapper e usano una delle librerie sopra citate per qualsiasi operazione di sollevamento pesante, in particolare se usano PKCS # 10 nelle proprie applicazioni.

La mia opzione rimanente è quella di fornire un semplice wrapper attorno a un array di byte. Fornisce un involucro molto sottile solo per il gusto di scrivere buone pratiche?

    
posta David Grant 11.03.2013 - 10:24
fonte

3 risposte

2

Come diceva Dave nei commenti, c'è sempre un compromesso.

Vedo alcuni punti a favore del tuo approccio:

  • È auto-documentante: void AnswerRequest(CertificateRequest request) potrebbe essere più descrittivo di void AnswerRequest(byte[] request) .
  • Probabilmente creerai alcuni metodi che funzionano con byte[] . Potrebbero adattarsi bene come metodi di istanza sulla tua classe wrapper: request.getPublicKey() è più bello di Pkcs10Tools.ExtractPublicKey(requestByteArray) .
  • Nascondere informazioni: se decidi di modificare la rappresentazione interna della classe (ad esempio aggiungendo campi per memorizzare determinati valori estratti dall'array di byte), puoi farlo senza modificare il codice utilizzando la classe.
  • È estendibile, se decidi di passare da un semplice wrapper a un corso più avanzato.

Svantaggi:

  • Se la maggior parte del lavoro viene eseguita da librerie esterne, i consumatori della tua classe useranno new CertificateRequest(myByteArray) e request.getByteArray() molto.
risposta data 13.03.2013 - 17:59
fonte
3

Sì, questa è una buona pratica, perché dà un significato a quelli avvolti byte introducendo un'interfaccia utente. Hai anche la possibilità di rendere l'uso di quei byte correttamente più semplice, perché l'API è un suggerimento su cosa può essere fatto con loro. L'uso di semplici byte può portare a un odore chiamato ossessione primitiva .

    
risposta data 13.03.2013 - 11:15
fonte
0

Sì, è un'ottima pratica: stai sfruttando la più grande forza delle lingue tipizzate staticamente.

    
risposta data 11.03.2013 - 15:11
fonte

Leggi altre domande sui tag