Voglio implementare l'accoppiamento libero in un progetto.
Conosco due esempi di progetti di accoppiamento loose di successo:
-
Su una workstation Unix, gli script di shell realizzano un accoppiamento lento tra le utilità di base. L'accoppiamento lento si basa sulla capacità della shell di ciecamente di reindirizzare i flussi di dati tra le utility, senza avere alcuna conoscenza sulla struttura. Le utility concordano su un modulo comune per cooperare come un formato separato da pipe per ordinare, tagliare, incollare, awk, ecc., Un dump svn o un dump banale di un normalizzato Documento SGML (con onsglmls).
-
Su un sistema Mac OS X, gli Applescript possono essere considerati come un accoppiamento lento.
In questi due esempi, vedo che i componenti cooperanti concordano su un protocollo comune per serializzare e deserializzare i dati che devono essere scambiati. Pertanto i componenti dipendono dal protocollo di serializzazione piuttosto che dalla rappresentazione interna dei dati.
L'implementazione di un protocollo di comunicazione stabile tra i componenti dell'applicazione è una strategia vincente per implementare un accoppiamento lento (e una buona incapsulamento)?
Per risolvere i legami, chiedo anche quale sarebbe un buon nome per gli artefatti del protocollo: i "dati" sono un po 'vaghi e ce ne sono molti in vari punti del software!