Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Threading;
- using System.Linq;
- using System.Threading.Tasks;
- class Program
- {
- static void Main(string[] args)
- {
- Receiver receiver = new Receiver(false, true, true);
- PaymentHandler bankPaymentHandler = new BankPaymentHandler();
- PaymentHandler moneyPaymentHandler = new MoneyPaymentHandler();
- PaymentHandler paypalPaymentHandler = new PayPalPaymentHandler();
- bankPaymentHandler.Successor = paypalPaymentHandler;
- paypalPaymentHandler.Successor = moneyPaymentHandler;
- bankPaymentHandler.Handle(receiver);
- Console.ReadLine();
- }
- }
- class Receiver
- {
- public bool BankTransfer{get;set;}
- public bool PayPalTransfer{get;set;}
- public bool MoneyTransfer{get;set;}
- public Receiver(bool bank, bool paypal, bool money)
- {
- this.BankTransfer = bank;
- this.PayPalTransfer = paypal;
- this.MoneyTransfer = money;
- }
- }
- abstract class PaymentHandler
- {
- public PaymentHandler Successor{get;set;}
- public abstract void Handle(Receiver recceiver);
- }
- class BankPaymentHandler : PaymentHandler
- {
- public override void Handle(Receiver recceiver)
- {
- if(recceiver.BankTransfer == true)
- Console.WriteLine("Выполняем банковский перевод");
- else if(Successor != null)
- Successor.Handle(recceiver);
- }
- }
- class MoneyPaymentHandler : PaymentHandler
- {
- public override void Handle(Receiver recceiver)
- {
- if(recceiver.MoneyTransfer == true)
- Console.WriteLine("Выполняем денежный перевод");
- else if(Successor != null)
- Successor.Handle(recceiver);
- }
- }
- class PayPalPaymentHandler : PaymentHandler
- {
- public override void Handle(Receiver recceiver)
- {
- if(recceiver.PayPalTransfer == true)
- Console.WriteLine("Выполняем перевод PayPal");
- else if(Successor != null)
- Successor.Handle(recceiver);
- }
- }
Add Comment
Please, Sign In to add comment