Advertisement
PavloSerg

Untitled

Jan 17th, 2023
929
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.26 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using System.Threading;
  8. using System.Text.RegularExpressions;
  9.  
  10. namespace Example
  11. {
  12.     public abstract class Sender
  13.     {
  14.         public abstract void Send(string to, string message);
  15.     }
  16.     public class SMSSender : Sender
  17.     {
  18.         public override void Send(string to, string message)
  19.         {
  20.             Console.WriteLine($"Я отправляю смс [{message}] на номер [{to}]");
  21.         }
  22.     }
  23.     public class MailSender : Sender
  24.     {
  25.         public override void Send(string to, string message)
  26.         {
  27.             Console.WriteLine($"Я отправляю сообщение [{message}] на почту [{to}]");
  28.         }
  29.     }
  30.     public class SenderFabric
  31.     {
  32.         public Sender GetSenderByRecipient(string to)
  33.         {
  34.             Regex smsRegex = new Regex(@"\+?[0-9]{11,12}");
  35.             if (smsRegex.IsMatch(to))
  36.                 return new SMSSender();
  37.             else
  38.                 return new MailSender();
  39.         }
  40.     }
  41.     internal class Messanger
  42.     {
  43.         private SenderFabric _senderFabric = new SenderFabric();
  44.         public void SendMessage(string to, string message)
  45.         {
  46.             Sender sender = _senderFabric.GetSenderByRecipient(to);
  47.             sender.Send(to, message);
  48.         }
  49.     }
  50.    
  51.     class Program
  52.     {
  53.         static void Main()
  54.         {
  55.             Messanger msg = new Messanger();
  56.             msg.SendMessage("+79998887766", "Привет, я тебе отправил смс!");
  57.             msg.SendMessage("example@mail.ru", "Привет, я тебе отправил сообщение на почту!");
  58.             //Задача:
  59.             //1) Написать n классов
  60.             //2) Классы должны икапсулировать отправку сообщений по телефону и по почте
  61.             //3) На этапе отправления нам нужно указать только куда и что, а как уже
  62.             //зависит от того, передан номер телефона или почта
  63.             //
  64.         }
  65.     }
  66.  
  67.    
  68. }
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement