Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- using System.Threading;
- using System.Text.RegularExpressions;
- namespace Example
- {
- public abstract class Sender
- {
- public abstract void Send(string to, string message);
- }
- public class SMSSender : Sender
- {
- public override void Send(string to, string message)
- {
- Console.WriteLine($"Я отправляю смс [{message}] на номер [{to}]");
- }
- }
- public class MailSender : Sender
- {
- public override void Send(string to, string message)
- {
- Console.WriteLine($"Я отправляю сообщение [{message}] на почту [{to}]");
- }
- }
- public class SenderFabric
- {
- public Sender GetSenderByRecipient(string to)
- {
- Regex smsRegex = new Regex(@"\+?[0-9]{11,12}");
- if (smsRegex.IsMatch(to))
- return new SMSSender();
- else
- return new MailSender();
- }
- }
- internal class Messanger
- {
- private SenderFabric _senderFabric = new SenderFabric();
- public void SendMessage(string to, string message)
- {
- Sender sender = _senderFabric.GetSenderByRecipient(to);
- sender.Send(to, message);
- }
- }
- class Program
- {
- static void Main()
- {
- Messanger msg = new Messanger();
- msg.SendMessage("+79998887766", "Привет, я тебе отправил смс!");
- msg.SendMessage("example@mail.ru", "Привет, я тебе отправил сообщение на почту!");
- //Задача:
- //1) Написать n классов
- //2) Классы должны икапсулировать отправку сообщений по телефону и по почте
- //3) На этапе отправления нам нужно указать только куда и что, а как уже
- //зависит от того, передан номер телефона или почта
- //
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement