[译]ASP.NET Core中使用MediatR实现命令和中介者模式

 作者:依乐祝

原文地址:

Main class

class Program       {           static void Main(string[] args)           {               Message message = new Message();               message.CustomMessage = "Welcome by Email";               EmailMessageCommand emailMessageCommand = new EmailMessageCommand(message);                  Message message2 = new Message();               message2.CustomMessage = "Welcome by SMS";               SmsMessageCommand smsMessageCommand = new SmsMessageCommand(message2);                  Broker broker = new Broker();               broker.SendMessage(emailMessageCommand);               broker.SendMessage(smsMessageCommand);               Console.ReadKey();              }       }  

消息类

public class Message       {           public string CustomMessage { get; set; }              public void EmailMessage()           {               Console.WriteLine($"{CustomMessage} : Email Message sent");           }              public void SmsMessage()           {               Console.WriteLine($"{CustomMessage} : Sms Message sent");           }       }  

接口和代理类

public interface IMessageCommand   {       void DoAction();          }      public class Broker   {       public void SendMessage(IMessageCommand command)       {           command.DoAction();       }   }  

命令

public class EmailMessageCommand : IMessageCommand       {           private Message oMessage;              public EmailMessageCommand(Message oMessage)           {               this.oMessage = oMessage;           }              public void DoAction()           {               oMessage.EmailMessage();           }       }          public class SmsMessageCommand : IMessageCommand       {           private Message oMessage;              public SmsMessageCommand(Message oMessage)           {               this.oMessage = oMessage;           }           public void DoAction()           {                             oMessage.SmsMessage();           }       }  

输出

Command, Mediator Pattern In ASP.NET Core Using Mediatr

什么是瘦控制器,我们为什么需要它?什么是MediatR?

当我们开始使用MVC框架进行开发时,逻辑是用控制器的动作方法编写的;就像我们有一个简单的电子商务应用程序,其中用户应该会下订单。我们有一个控制器,OrderController,用来管理订单。当用户下订单时,我们应该在数据库中保存记录。
在此之前,我们有一个简化的代码。然而,经过一段时间后,我们意识到还有一个确认电子邮件的业务需求。现在,第二步是发送确认电子邮件给客户。后来,我们意识到,在这个步骤之后,我们还需要执行另一个操作,即,记录信息等。最后,我们还需要将用户的信息保存到CRM中。关键是它会增长控制器的大小。现在,我们可以称之为“臃肿控制器”。
基于命令的体系结构允许我们发送命令来执行某些操作,并且我们有单独的命令处理程序,使关注点分离和提高单

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信