Il trucco qui è che quando si avvia un'operazione di trascinamento, l'applicazione i cui dati si stanno trascinando forniranno al sistema operativo i dati in uno o più formati specifici . Quindi, l'applicazione sulla quale vengono rilasciati i dati richiederà al sistema operativo se ha dati in uno o più formati specifici . Pertanto, quando si rilasciano "gli stessi dati" su due diverse applicazioni, vengono visualizzate due diverse parti di dati, ciò significa semplicemente che quelle due applicazioni di destinazione hanno fatto scelte diverse rispetto alla gamma di formati di dati forniti dall'applicazione di origine.
Per la massima interoperabilità, in genere è consigliabile fornire i dati di trascinamento nel maggior numero possibile di formati. Il sistema operativo potrebbe persino "compilare" alcuni formati extra per te, o consentire di registrare i tuoi formati di dati personalizzati oltre a quelli standard che fornisce.
Dato che ho voglia di citare una fonte con dettagli più specifici del sistema, questa è la pagina MSDN nei formati di dati degli appunti in Windows . Presumo che Mac e Linux abbiano molte delle stesse funzionalità.
Per quanto riguarda gli schemi di progettazione, non sono a conoscenza di qualcosa che potresti chiamare un "modello di progettazione" che sarebbe intrinsecamente appropriato per l'implementazione di questa funzionalità. E non ho idea se i tre grandi sistemi operativi ne contengano alcuno nelle loro implementazioni.