Compare commits

...

2 Commits

Author SHA1 Message Date
Fred Pauchet 9481bd27d9 Describe proxy pattern 2024-03-26 15:21:20 +01:00
Fred Pauchet 4cd65331bf Describe State pattern 2024-03-26 15:15:04 +01:00
3 changed files with 17 additions and 0 deletions

View File

@ -125,7 +125,14 @@ Les tableaux utilisent ce pattern pour les tris en utilisant les méthodes `.Com
### State
Le _State_ pattern s'appuye sur la même modélisation que le _Strategy_, à la différence qu'il est surtout utilisé comme une simplification d'un ensemble de conditions, là où _Strategy_ est surtout utilisé comme une alternative à l'héritage classique.
La différence entre les deux se situe principalement au niveau de **l'intention**.
L'algorithme garde en mémoire l'état courant d'un élément et interagit avec celui-ci pour qu'il définisse (lui-même) l'état d'après, en fonction d'une action spécifique.
![](state.png)
Chaque état implémente une interface commune, et chaque méthode de cette interface exprime une transition.
### Observer
@ -172,5 +179,15 @@ Attention qu'en termes de performances, ce pattern doit généralement être cou
### Proxy
Un "proxy" contrôle et gère les accès à une ressource.
Il faut voir ce pattern pour une représentation de plusieurs objets encapsulés, afin d'en contrôler les différents accès - locaux ou à distance -, coûteux à instancier, à créer ou présentant des besoins spécifiques en sécurité.
![](proxy.png)
Nous avons une interface qui définit un sujet, tandis que notre "vrai" sujet, ainsi que son proxy, implémentent tous les deux cette même interface.
Ceci permet d'interagir avec le sujet en gardant les mêmes méthodes, mais en contrôlant les ressources et/ou accès qui y sont liés, au travers du proxy.
Si vous recherchez de la sécurité ou du lazy loading, c'est ceci qu'il vous faut 😉
### Compound

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB