C# Od podstaw 03.09 - Interfejs

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ก.ย. 2024
  • Aktualne kupony zniżkowe na moje kursy:
    fullstackdevel...
    Interfejs jako inny rodzaj abstrakcji w C#
    Różnice między klasą abstrakcyjną a interfejsem

ความคิดเห็น • 10

  • @andrzejas943
    @andrzejas943 2 ปีที่แล้ว +2

    To się nazywa dobre wytłumaczenie interfejsu - budowanie po kolei - od zwykłego dziedziczenia po klasę abstrakcyjną po interfejs, tego brakowało w innych kursach.

  • @janostrowski8932
    @janostrowski8932 ปีที่แล้ว +1

    Fajne bo krótkie, treściwe i na temat!

  • @papkin8902
    @papkin8902 3 ปีที่แล้ว +1

    W jakim celu się używa interfejsy, skoro i tak trzeba sobie wszystko samemu zaimplementować (nie wiem czy użyłem odpowiedniego słowa). Nie szybciej byłoby od razu implementować bez używania interfejsu?

    • @FullstackDeveloperPL
      @FullstackDeveloperPL  3 ปีที่แล้ว +6

      w kontekscie tego przykładu, załóżmy, że dla tych 3 różnych typów plików (excel, word i powerpoint) masz za zadanie skompresować plik i wysłać go jako załącznik mailem.
      I jakbyś do tego zadania podszedł bez tego wspólnego interfejsu dla tych 3 typów?
      Musiałbyś utworzyć w jakiejś klasie, conajmniej 3 metody, dla każdego typu z osobna, a ich implementacja byłaby taka: pobrałbyś nazwę pliku, wczytał do pamięci, skompresował i wysłał skompresowaną wartość emailem.
      Ponadto konsument (miejsce w kodzie gdzie wywoływałbyś wysłanie tego pliku emailem), musiałby w jakiś sposób na podstawie klasy danego pliku wywołać odpowiednią metodę
      A z drugiej strony jeśli wydzielisz wspólny interface IFile, to w klasie która zajmuję się wysyłaniem emaili, teraz zamiast 3 metod per każdy tym pliku, masz jedną, która jako parametr przyjmuje abstrakcje IFile. Czyli de facto ta klasa nie wie jaki konkretnie plik będzie wysyłać, dzięki czemu osiągniemy luźne powiązanie (loose coupling)
      I w takim podejściu konsument nie zwraca uwagi na to jaki konkretnie typ pliku musi wysłać emailem, po prostu wywołuje metodę do której przekaże obiekt implementujący interface IFile
      Także przy takim podejściu kod jest bardziej 'elastyczny', bardziej rozszerzalny i reużywalny

    • @papkin8902
      @papkin8902 3 ปีที่แล้ว +1

      @@FullstackDeveloperPL czy to samo się do metod?

    • @FullstackDeveloperPL
      @FullstackDeveloperPL  3 ปีที่แล้ว

      @@papkin8902 tak, dokładnie :p

    • @papkin8902
      @papkin8902 3 ปีที่แล้ว

      @@FullstackDeveloperPL a planujesz robić jakaś serię czy coś, z pisania jakiegoś większego projektu? I czy masz w planach przerabianie w poradnikach Formsów itd?

    • @FullstackDeveloperPL
      @FullstackDeveloperPL  3 ปีที่แล้ว +4

      @@papkin8902 tak, na pewno na kanale pojawią się materiały z tworzenia aplikacji webowych w ASP.NET

  • @princessdaisy8606
    @princessdaisy8606 4 หลายเดือนก่อน

    Przyjemnie wytłumaczone, ale wolałabym wysłuchać bardziej obszerny materiał, a nie tylko wstęp do zagadnienia.