Définissons ces termes et ce qu'ils impliquent.
Commençons par le dernier : la programmation asynchrone.
Ce terme indique que l'on conçoit et code son application de manière asynchrone, c'est-à-dire de manière non bloquante : une action qui lance un traitement n'attend pas qu'il se termine, mais le traitement prévient l'action qu'il est fini. C'est un peu principe utilisé dans Swing en Java : toute modification de l'interface graphique se fera le moment voulu et pas en direct au risque de geler l'application tout entière.
Cette programmation, du moins celle que je pratique, est basée sur les trois autres termes : protocol, context et handler.
Explications :
- protocol : le protocol représente l'ensemble des données échangeables entre deux entités qui communique via ce protocol, les types de ces données et leurs règles et formats d'échanges entre deux objets.
- handler : un handler est un objet de traitement spécifique d'un protocol donné.
- context : le context est le conteneur d'informations obéissant au protocol que le handler reçoit à traiter.
Ainsi on programme l'application un peu comme un ensemble de bulles indépendantes.