Programowanie Obiektowe wykłady









Klasa i Obiekt

Podstawowe wyróżniki obiektowości

Abstrakcja

Hermetyzacja (Enkapasulacja)


Dziedziczenie


Polimorfizm

Związki Klas w diagramach URL

Klasy Abstrakcyjne i Finalne

Klasa potomna musi implementować wszystkie metody i właściwości



Interfejsy

Wykorzystanie interfejsów

Polimorfizm

Abstrakcja vs wirtualna

Reguły projektowania obiektowego S.O.L.I.D.

  1. Single Responsibility Principle

  1. Open Closed Principle

  1. Liskov Substitution Principle

  1. Interface Segragation Principle

  1. Dependency Inversion Principle



Obsługa wyjątków

Finally pozwala na posprzątanie w sytuacji gdy po wystąpieniu wyjątku coś musimy jeszcze zrobić

Zgłaszać czy nie ?

Kiedy ?

GŁÓWNE KOLEKCJE:

- List <T>

- LinkedList < T >

- Słownik Dictionary < TKey , TValue >

- HashSet < T > - zbiór

- Queue<T> - Kolejka FIFO - First In First Out

- Stack<T> - stos LIFO - Last In First Out

STRUMIENIE

Strumienie – przykładowe klasy

FileStream fs = new FileStream("Foo.txt",

       FileMode.OpenOrCreate, FileAccess.ReadWrite);

   try

   {

       StreamWriter sw = new StreamWriter(fs);


       sw.WriteLine("Hello World!");

       sw.WriteLine("Bye!");

       sw.Close();

   }

   catch (Exception e)

   {

       Console.WriteLine(e.ToString());

   }

Pola FileMode

  •  `Append`

  • Tworzy lub otwiera plik i przechodzi na jego koniec. Wymaga utworzenia obiektu z parametrem FileAccess.Write.

  • `Create`

  • Tworzy plik, a w razie gdy on już istnieje, zastępuje jego dotychczasową zawartość.

  • `CreateNew`

  • Tworzy plik, a w razie gdy on już istnieje, generuje odpowiedni `wyjątek`.

  • `Open`

  • Otwiera nowy plik do odczytu. Jeżeli plik nie istnieje, generowany jest wyjątek.

  • OpenOrCreate

  • Otwiera plik, a jeżeli ten nie istnieje — tworzy nowy.

  • `Truncate`

  • Otwiera plik i czyści jego zawartość.

  •  `Read`

  • Dane mogą być jedynie odczytywane.

  • `Write`

  • Dane mogą być tylko zapisywane.

  • `ReadWrite`

  • Dane mogą być zarówno zapisywane, jak i odczytywane.


Obsługa systemu plików – Directory

Komunikacja TCP

TcpClient client = new TcpClient("localhost", port);

NetworkStream stream = client.GetStream();

StreamReader reader = new StreamReader(stream);

StreamWriter writer = new StreamWriter(stream) { AutoFlush = true };


TcpListener listener = new TcpListener(IPAddress.Loopback, port);

listener.Start();


TcpClient client = listener.AcceptTcpClient();

NetworkStream stream = client.GetStream();

StreamWriter writer=new StreamWriter(stream, Encoding.ASCII){AutoFlush = true };

StreamReader reader = new StreamReader(stream, Encoding.ASCII);

WZORCE PROJEKTOWE

Zalety wzorców projektowych





Podział wzorców projektowych

Wzorzec projektowy Strategia


Działanie wzorca strategia

Przykłady wykorzystania:

Wzorzec obserwator

Działanie wzorca obserwator


Zalety wzorca obserwator

Przykładowe wykorzystania