Strona 1 z 1

Lekcja 27 - Interfejsy

Napisane: niedziela, 27 stycznia 2013, 15:43
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

Re: Lekcja 27 - Interfejsy

Napisane: poniedziałek, 28 stycznia 2013, 12:16
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