Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 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.  
  7. namespace Obserwator
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. Aukcja aukcja = new Aukcja();
  14. aukcja.DodajKlienta(new Klient("Jan"));
  15. aukcja.DodajKlienta(new Klient("Adam"));
  16. aukcja.DodajAukcje();
  17. aukcja.DodajAukcje();
  18. Console.ReadKey();
  19. }
  20. }
  21. abstract class Powiadomienie
  22. {
  23. public abstract string GetWiadomosc();
  24. }
  25. class PowiadomienieOpis : Powiadomienie
  26. {
  27. public override string GetWiadomosc()
  28. {
  29. return "Opis";
  30. }
  31. }
  32. class PowiadomienieCena : Powiadomienie {
  33. public override string GetWiadomosc()
  34. {
  35. return "Cena";
  36. }
  37. }
  38. class PowiadomienieDataZakonczenia : Powiadomienie {
  39. public override string GetWiadomosc()
  40. {
  41. return "DataZakonczenia";
  42. }
  43. }
  44.  
  45. class Aukcja : IObservable
  46. {
  47. public List<IObserver> Lista_klientow;
  48.  
  49. public Aukcja()
  50. {
  51. Lista_klientow = new List<IObserver>();
  52. }
  53. public void DodajKlienta(IObserver k)
  54. {
  55. Lista_klientow.Add(k);
  56. }
  57. public void UsunKlienta(IObserver k)
  58. {
  59. Lista_klientow.Remove(k);
  60. }
  61. public void DodajAukcje()
  62. {
  63. Console.WriteLine("Dodano aukcje");
  64. Powiadom();
  65. }
  66. public void Powiadom()
  67. {
  68. foreach (var x in Lista_klientow)
  69. {
  70. x.Update();
  71. }
  72. }
  73. }
  74. class Klient : IObserver
  75. {
  76. public Klient(string nazwa)
  77. {
  78.  
  79. Nazwa = nazwa;
  80. }
  81. public string Nazwa;
  82. public void Update()
  83. {
  84. Console.WriteLine("Powiadomiono " + Nazwa + " o nowej aukcji");
  85. }
  86. }
  87. interface IObserver
  88. {
  89. void Update();
  90. }
  91. interface IObservable
  92. {
  93. void DodajKlienta(IObserver k);
  94. void UsunKlienta(IObserver k);
  95. void Powiadom();
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement