Lekcja 27 - Interfejsy

Dyskusje na temat języka C# oraz biblioteki .NET
abuc
Początkujący
Początkujący
Posty: 9
Dołączył(a): poniedziałek, 14 maja 2012, 14:43

Lekcja 27 - Interfejsy

Post przez abuc »

Hej.

Mam małe pytanie na temat lekcji 27.
Mam nadzieję, że ostatnia klasa, KontoB, została utworzona dla lepszego zobrazowania sytuacji, bo nie rozumiem za bardzo dlaczego mówisz, że transfer pieniędzy odbył sie na tym samym koncie zanim utworzyliśmy KontoB?

Załóżmy, że jest sobie bank, który udostępnia otwarcie konta tylko jednego rodzaju. Jest to KontoA. Moglibyśmy w konstruktorze określić coś takiego jak imię i nazwisko posiadacza. Nasz interface jest wzorem jak nasze konto ma wyglądać, co ma zawierać.

Stworzyliśmy sobie coś takiego:

Code: Zaznacz cały

        IKontoBankowe a = new KontoA();
        IKontoBankowe b = new KontoA();
Przeciez to są 2 inne konta, 2 inne egzemplarze. Dokonując transferu dokonujemy go z jednego konta na drugie. Egzemplarze nazywaja się tak samo ale konta są inne(a i b). Bez sensu byłoby tworzenie osobnej klasy dla każdego klienta - moim zdaniem :) Jak dobrze zrozumiałem to nasz interface ma określać wygląd każdego konta jakie będzie tworzone w banku, więc KontoB, które utworzyliśmy jest osobną grupą kont dla naszych klientów. Np. KontoA to rodzaj konta indywidulnego, a KontoB to rodzaj konta biznesowego. Na podstawie tych klas tworzymy sobie setki egzemplarzy, z których każdy należy do kogoś innego i w rzeczywistości się one różnią.

Jeśli nie zrozumiałem tego dobrze proszę poprawcie mnie.

Pozdrawiam
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Lekcja 27 - Interfejsy

Post przez Morfidon »

Hej,

KontoA to klasa konta bankowego jednej firmy nazwijmy ją A, a klasa KontoB to konto innej firmy nazwijmy ją B.

Chodzi oto, że każdy klient banku A tworzy konto KontoA, a każdy klient banku B tworzy konto KontoB.

Dzięki interfejsowi sprawiamy, że wymagamy, aby bank A i bank B miał identycznie nazwane funkcje. Przez co klient z banku A i klient z banku B mogą komunikować się ze sobą tak samo nazywającymi funkcjami. Funkcje mogą jednak różnić się między sobą swoim ciałem.

Oczywiście można stworzyć sytuację taką jak Ty stworzyłeś. Tzn. dwóch klientów z banku A transferują pomiędzy sobą pieniądze.

Stworzyliśmy dwie klasy tylko dlatego, że mamy dwa banki, a nie dwóch klientów ;) Ewentualnie może być tak jak Ty powiedziałeś, że są to typy kont jednego banku. Co nie zmienia faktu, że możesz transferować pieniądze pomiędzy różnymi typami kont jak i takimi samymi typami kont. Ja przedstawiłem najtrudniejszą sytuację.

W sumie sam już nie pamiętam dokładnie czy mówiłem o typach kont różnych banków, czy typach kont jednego banku, ale nie ma to znaczenia w tym wypadku, co w sumie jest właśnie piękne w interfejsach ;)

Pozdrawiam
Post Reply