Ochkasty_Dino

Pattern_Adapter

Sep 28th, 2020
877
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace adapter
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Fisherman fisherman = new Fisherman(); // создали нового рыбака
  14.             FishRod fishRod = new FishRod(); // взяли удочку
  15.             fisherman.ToFish(fishRod); // ловим рыбу на удочку
  16.             // удочка сломалась, но есть резинка
  17.             Rubber rubber = new Rubber(); //взяли леску, примотанную к резинке и грузу
  18.             IFish rubbtorod = new FishRodToRubber(rubber); // использовали адаптер
  19.             fisherman.ToFish(rubbtorod); // дальше спокойно рыбачим на резинку
  20.  
  21.         }
  22.         //интерфейс удочки
  23.         interface IFish
  24.         {
  25.             void t_hrow();
  26.         }
  27.         //класс удочки
  28.         class FishRod : IFish
  29.         {
  30.             public void t_hrow()
  31.             {
  32.                 Console.WriteLine("Закидка удочки");
  33.             }
  34.         }
  35.         // класс рыбака
  36.         class Fisherman
  37.         {
  38.             public void ToFish(IFish fish)
  39.             {
  40.                 fish.t_hrow();
  41.             }
  42.         }
  43.         //интерфейс резинки
  44.         interface IElastic
  45.         {
  46.             void pull_on();
  47.         }
  48.         //класс резинки
  49.         class Rubber : IElastic
  50.         {
  51.             public void pull_on()
  52.             {
  53.                 Console.WriteLine("Натяжка лески резинкой");
  54.             }
  55.         }
  56.         //Адаптер от удочки к резинке
  57.         class FishRodToRubber : IFish
  58.         {
  59.             Rubber rubber;
  60.             public FishRodToRubber(Rubber c)
  61.             {
  62.                 rubber = c;
  63.             }
  64.             public void t_hrow()
  65.             {
  66.                 rubber.pull_on();
  67.             }
  68.         }
  69.     }
  70. }
  71.  
RAW Paste Data