2010-12-15 42 views
2

Habituellement fait pour tester le code existant. Par exemple, il pourrait y avoir une charge d'appels statiques commeNom du modèle dans lequel vous créez une instance pour appeler des méthodes statiques

int importantNumber = DataAccess.LoadValue(); 

et je créer une classe qui peut être instancié pour appeler ceux-ci, qui est normalement derrière une interface, comme

public int LoadValue(){ 
    return DataAccess.LoadValue(); 
} 

Ensuite, je peux utiliser DI ou autre et remplacer l'appel d'origine par

int importantNumber = _dataAccessInstance.LoadValue(); 

Y a-t-il un nom pour ce modèle? Je pensais 'Adaptateur', mais cela semble plus spécifique que ça.

+0

Je pensais « adaptateur » aussi bien. –

+0

Ou peut-être c'est une façade? –

+0

Je l'appellerais un wrapper orienté objet. Quoi qu'il en soit, qu'est-ce qu'il y a dans le nom? : P –

Répondre

3

Proxy.

Il ressemble à l'un des wrappers - proxy, adaptateur ou décorateur. Le décorateur ne correspond pas vraiment car vous n'ajoutez aucune valeur; l'adaptateur s'adapte si vous mappez d'une interface à une autre; Je pense que le proxy est la réponse, car vous l'utilisez pour médiatiser l'accès à la boîte à outils.

Peut être une façade si vous simplifiez l'accès à un sous-ensemble d'outils à partir d'une très grande bibliothèque de code.

+0

Cela a du sens. Je pourrais nommer la classe 'xxxWrapper' à la place de l'un des patterns d'encapsulation spécifiques - semble un bon compromis et moins confus que 'proxy', je pense (même si c'est le nom de pattern précis). Peut-être que quelqu'un a besoin de trouver un nouveau nom! –

+0

J'ai tendance à beaucoup jouer avec le nom Wrapper, car Proxy semble toujours venir avec des bagages :) –

3

C'est un proxy.

Un adaptateur modifie l'interface d'une classe pour le rendre plus facile à utiliser avec d'autres clases

Une façade est la création d'une interface unique pour faire interagir avec les interfaces de plusieurs objets plus faciles. Cela change le niveau d'abstraction.

Un décorateur ne change pas l'interface, mais ajoute des fonctionnalités supplémentaires

Un proxy agit comme un substitut à un autre objet avec la même interface et même fonctionnalité de fin

+0

Quelques bons résumés, très utiles –