Advertisement
Guest User

Untitled

a guest
Jan 18th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.95 KB | None | 0 0
  1. using System;
  2.  
  3. namespace WzorceProjektowe
  4. {
  5.     // Abstract Factory
  6.     public interface IFigura
  7.     {
  8.     }
  9.     public class Kwadrat : IFigura
  10.     {
  11.  
  12.     }
  13.     public class Trojkat : IFigura
  14.     {
  15.  
  16.     }
  17.  
  18.     abstract class FabrykaFigur : IFigura
  19.     {
  20.         public abstract IFigura StworzFigure();
  21.     }
  22.  
  23.     class FabrykaKwadratow : FabrykaFigur
  24.     {
  25.         public override IFigura StworzFigure()
  26.         {
  27.             return new Kwadrat();
  28.         }
  29.     }
  30.  
  31.     class FabrykaTrojkotow : FabrykaFigur
  32.     {
  33.         public override IFigura StworzFigure()
  34.         {
  35.             return new Trojkat();
  36.         }
  37.     }
  38.  
  39.     // Fasada
  40.     public interface IDziałania
  41.     {
  42.         void DeltaDodatnia(double a, double b, double c);
  43.         void DeltaRownaZero(double a, double b, double c);
  44.         void DeltaUjemna(double a, double b, double c);
  45.     }
  46.  
  47.     public class Działania : IDziałania
  48.     {
  49.         public void DeltaDodatnia(double a, double b, double c)
  50.         {
  51.             double delta = b * b - 4.0 * a * c;
  52.             Console.WriteLine("Pierwszy pierwiastek: {0}", (-b - delta) / (2 * a));
  53.             Console.WriteLine("Drugi pierwiastek: {0}", (-b + delta) / (2 * a));
  54.         }
  55.  
  56.         public void DeltaRownaZero(double a, double b, double c)
  57.         {
  58.             Console.WriteLine("Pierwiastek: {0}", (-b) / (2 * a));
  59.         }
  60.  
  61.         public void DeltaUjemna(double a, double b, double c)
  62.         {
  63.             Console.WriteLine("Brak pierwiastków wielomianu kwadratowego");
  64.         }
  65.     }
  66.  
  67.     public class Fasada
  68.     {
  69.         public void ObliczPierWieomianu(double a, double b, double c)
  70.         {
  71.             Działania ob = new Działania();
  72.             double delta = b * b - 4.0 * a * c;
  73.             if (delta > 0)
  74.             {
  75.                 ob.DeltaDodatnia(a, b, c);
  76.             }
  77.             else if (delta == 0)
  78.             {
  79.                 ob.DeltaRownaZero(a, b, c);
  80.             }
  81.             else
  82.             {
  83.                 ob.DeltaUjemna(a, b, c);
  84.             }
  85.         }
  86.     }
  87.  
  88.     // Budowniczy
  89.  
  90.     class Klient
  91.     {
  92.         public string Imie { get; set; }
  93.         public string Nazwisko { get; set; }
  94.         public string KodPocztowy { get; set; }
  95.         private double _mojeSaldo;
  96.         public double MojeSaldo { get => _mojeSaldo; set => _mojeSaldo = value; }
  97.         public string Miasto { get; set; }
  98.         public string Ulica { get; set; }
  99.         public int NumerDomu { get; set; }
  100.  
  101.         public Klient(Builder builder)
  102.         {
  103.             Imie = builder.imie;
  104.             Nazwisko = builder.nazwisko;
  105.             KodPocztowy = builder.kodpocztowy;
  106.             _mojeSaldo = builder.mojeSaldo;
  107.             Miasto = builder.miasto;
  108.             Ulica = builder.ulica;
  109.             NumerDomu = builder.numerdomu;
  110.         }
  111.  
  112.         public class Builder
  113.         {
  114.             public string imie;
  115.             public string nazwisko;
  116.             public string kodpocztowy;
  117.             public double mojeSaldo;
  118.             public string miasto;
  119.             public string ulica;
  120.             public int numerdomu;
  121.  
  122.             public Builder Imie(string imie)
  123.             {
  124.                 this.imie = imie;
  125.                 return this;
  126.             }
  127.  
  128.             public Builder Nazwisko(string nazwisko)
  129.             {
  130.                 this.nazwisko = nazwisko;
  131.                 return this;
  132.             }
  133.  
  134.             public Builder KodPocztowy(string kodpocztowy)
  135.             {
  136.                 this.kodpocztowy = kodpocztowy;
  137.                 return this;
  138.             }
  139.  
  140.             public Builder MojeSaldo(double mojeSaldo)
  141.             {
  142.                 this.mojeSaldo = mojeSaldo;
  143.                 return this;
  144.             }
  145.  
  146.             public Builder Miasto(string miasto)
  147.             {
  148.                 this.miasto = miasto;
  149.                 return this;
  150.             }
  151.  
  152.             public Builder NumerDomu(int numerDomu)
  153.             {
  154.                 this.numerdomu = numerDomu;
  155.                 return this;
  156.             }
  157.  
  158.             public Builder Ulica(string ulica)
  159.             {
  160.                 this.ulica = ulica;
  161.                 return this;
  162.             }
  163.  
  164.             public Klient build()
  165.             {
  166.                 return new Klient(this);
  167.             }
  168.         }
  169.     }
  170.     class Program
  171.     {
  172.         static void Main(string[] args)
  173.         {
  174.             // Fabryka
  175.             FabrykaFigur fabryka = new FabrykaKwadratow();
  176.             IFigura kwadrat = fabryka.StworzFigure();
  177.  
  178.             // Fasada
  179.             Fasada ob = new Fasada();
  180.             ob.ObliczPierWieomianu(2, 6, 4);
  181.  
  182.             // Budowniczy
  183.             Klient client = new Klient.Builder()
  184.         .Imie("Slawomir")
  185.         .Nazwisko("Kowalski")
  186.         .KodPocztowy("34 174")
  187.         .MojeSaldo(456.32)
  188.         .NumerDomu(23)
  189.         .Miasto("Cambridge")
  190.         .Ulica("botolph lane")
  191.         .build();
  192.         }
  193.     }
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement