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;
- namespace Obserwator
- {
- class Program
- {
- static void Main(string[] args)
- {
- Aukcja aukcja = new Aukcja();
- aukcja.DodajKlienta(new Klient("Jan"));
- aukcja.DodajKlienta(new Klient("Adam"));
- aukcja.DodajAukcje();
- aukcja.DodajAukcje();
- Console.ReadKey();
- }
- }
- abstract class Powiadomienie
- {
- public abstract string GetWiadomosc();
- }
- class PowiadomienieOpis : Powiadomienie
- {
- public override string GetWiadomosc()
- {
- return "Opis";
- }
- }
- class PowiadomienieCena : Powiadomienie {
- public override string GetWiadomosc()
- {
- return "Cena";
- }
- }
- class PowiadomienieDataZakonczenia : Powiadomienie {
- public override string GetWiadomosc()
- {
- return "DataZakonczenia";
- }
- }
- class Aukcja : IObservable
- {
- public List<IObserver> Lista_klientow;
- public Aukcja()
- {
- Lista_klientow = new List<IObserver>();
- }
- public void DodajKlienta(IObserver k)
- {
- Lista_klientow.Add(k);
- }
- public void UsunKlienta(IObserver k)
- {
- Lista_klientow.Remove(k);
- }
- public void DodajAukcje()
- {
- Console.WriteLine("Dodano aukcje");
- Powiadom();
- }
- public void Powiadom()
- {
- foreach (var x in Lista_klientow)
- {
- x.Update();
- }
- }
- }
- class Klient : IObserver
- {
- public Klient(string nazwa)
- {
- Nazwa = nazwa;
- }
- public string Nazwa;
- public void Update()
- {
- Console.WriteLine("Powiadomiono " + Nazwa + " o nowej aukcji");
- }
- }
- interface IObserver
- {
- void Update();
- }
- interface IObservable
- {
- void DodajKlienta(IObserver k);
- void UsunKlienta(IObserver k);
- void Powiadom();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement