Est-ce parce que je peux passer un seul objet dans mon constructeur, plutôt que de
une multitude d'Interfaces?
Pas de.
Est-ce un remplacement ou un concurrent de ServicesBus etc...
Pas de.
Fondamentalement, ce sont les avantage et quel problème est-il de résoudre
Entre autres choses, le problème MediatR tente de résoudre est DI Constructeur Explosion dans votre contrôleurs MVC
public DashboardController(
ICustomerRepository customerRepository,
IOrderService orderService,
ICustomerHistoryRepository historyRepository,
IOrderRepository orderRepository,
IProductRespoitory productRespoitory,
IRelatedProductsRepository relatedProductsRepository,
ISupportService supportService,
ILog logger
)
C'est un sujet très controversé, et il n'y a pas de one-size-fits-all solution, prendre un coup d'oeil à cette question
Comment éviter l'Injection de Dépendance constructeur de la folie?
Si vous souhaitez masquer les dépendances derrière encore plus abstractions, puis, à ce stade, vous aurez envie de prendre un coup d'oeil à toutes les options, comme le remaniement, la séparation des préoccupations un peu plus, ou d'autres techniques.
En toute honnêteté, l'exemple du problème et de la solution donnée sur la MediatR site web est un peu suspect, cependant il a ses utilise. En bref, vous devez choisir ce qui est bon pour vous et votre environnement.
Aperçu du Médiateur Modèle
Un médiateur est un objet qui rend des décisions sur comment et quand les objets interagissent les uns avec les autres. Il encapsule le "comment" et coordonne l'exécution en se basant sur l'état, la façon dont il est invoqué ou de la charge que vous lui fournissez.
En ce qui concerne l'esprit de votre question, vous devriez vraiment jeter un oeil à ce site:
Simplifiant le Développement et la Séparation des Préoccupations avec MediatR
MediatR est une implémentation open source du médiateur motif que
n'essayez pas d'en faire trop et n'effectue aucune magie. Il vous permet de
composer des messages, de créer et d'écouter les événements à l'aide synchrone ou
modèles asynchrones. Il aide à réduire le couplage et d'isoler l'
les préoccupations de la demande de travail à faire et de la création du gestionnaire d'événements
qui distribue le travail.
Plus à propos de Médiateur de Modèle
Pouvez-vous dans votre propre avis décrire pourquoi l'utiliser
Le médiateur modèle permet le découplage de votre demande par le biais de la communication par l'intermédiaire d'un médiateur (son d'une chose) .
Habituellement, un programme est constitué d'un grand nombre de classes. Cependant, comme de plus en plus les classes sont ajoutées à un programme, le problème de la communication entre ces classes peuvent devenir plus complexes. Cela rend le programme plus difficile à lire et à maintenir. En outre, il peut devenir difficile de modifier le programme, étant donné que toute modification pourrait influer sur le code à plusieurs autres classes.
Avec le médiateur modèle, la communication entre les objets est encapsulée dans un objet médiateur. Des objets plus communiquer directement les uns avec les autres (découplage), mais, au lieu de communiquer par l'intermédiaire du médiateur. Cela réduit les dépendances entre les objets communicants, réduisant ainsi le couplage.
Dans le logiciel moderne, le médiateur motif est généralement trouvé dans de nombreux cadres, mais vous pouvez créer votre propre, ou d'utiliser l'un des nombreux qui sont disponibles.
À partir d'ici, je pense que vous devriez probablement juste de faire plus de recherches, je veux dire en général, vous comprendre vous avez besoin de ces choses avant de de la recherche, mais dans ce cas je pense que vous avez vraiment besoin de trouver quelques bons exemples pour savoir si vous souhaitez que le Médiateur Modèle, et encore plus Le MediatR bibliothèque
Mise à jour
wired_in a eu la grande pratique de commentaire sur cette
Tous les MediatR n'est le service localiser un gestionnaire pour une demande. C'est
pas le médiateur de modèle. Le "médiateur" dans ce cas, ne pas
décrire comment deux objets de communiquer, il utilise l'inversion de contrôle
qui est déjà utilisé dans une application et fournit simplement un
inutile de couche d'abstraction qui ne sert qu'à faire une demande
plus difficile de raisonner sur l'ensemble. Vous avez déjà réaliser le découplage par
en utilisant la norme constructeur d'injection avec le Cio. Je ne comprends pas pourquoi
les gens achètent cette. Nous allons créer plusieurs composite racines, juste pour que nous
n'ont pas à mettre des interfaces dans notre constructeur.
et
L'OP est tout à fait justifiée en s'interrogeant sur le point de MediatR.
Le top des réponses que j'entends à la question impliquer expliquant l'utilisation de
le médiateur modèle en général, ou qu'il rend le code appelant
nettoyeur. L'ancien explication suppose que les MediatR bibliothèque
en fait met en œuvre le médiateur, qui est loin d'être clair. L'
ce dernier n'est pas une justifcation pour l'ajout d'une autre abstraction sur le dessus de
déjà prélevée conteneur IoC, qui crée de multiples composite
les racines. Juste injecter le gestionnaire au lieu de service à la localiser