![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam nadzieje, że to forum będzie trwało tyle co PHP, tyle mi już pomogło, że hej. Przejdę do sedna sprawy czyli do interfejsów.
Jak mi wiadomo, że można było dziedziczyć tylko z jednej Klasy(Króla) ale co mi to da, że wprowadzę interfejs, jeśli i tak w klasach niższych(Mieszczanach) będę musiał powtórzyć kod funkcji? W królu będe musiał dać funkcje
Jeśli w Mieszczanie będe musiał dać taki sam kod? Czy dobrze zrozumiałem? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 44 Dołączył: 23.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Bo interfejsy służą do określenia jakie metody musi udostępniać klasa. Zatem trochę bez sensu byłoby określać najpierw jakąś metodą za wymaganą, a potem jej nie implementować. Jak nie potrzebujesz takiego wymagania to nie używaj interfejsów...
Masz dziedziczenie w którym możesz stworzyć sobie główną klasę która zaimplementuje wszystkie domyślne metody, a potem dziedziczyć po niej. W klasach które dziedziczą nie musisz nic implementować, albo implementować to co chcesz. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Więc jakie zadanie mają interfejsy, po co ich używać (określać jakie metody są wymagane)?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Implementację można całkowicie przenieść na klasy potomne. Wystarczy bazową oznaczyć jako abstrakcyjną.
-------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Jak zaimpletuje to sprawdzi, czy ta metoda jest w obiekcie, jeśli niema to zwroci error, czy to jest ich zadanie?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Oj. Zobacz taki przykład:
-------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
-------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Już wiem a teraz pytanie główne. Czy interfejsy pełnią głównie rolę zabezpieczającą (pilnująca czy są wszystkie obiekt)?
A jak nie to na chłopski rozum w 1 zdaniu prostym jaką |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 4 Dołączył: 23.05.2007 Skąd: Łódź Ostrzeżenie: (10%) ![]() ![]() |
Interfesy maja zadanie dostarczyć funkcjonalności. PHP nie ma ścisłego typowania (może ale nie musi) ale w JAVA musisz tego pilnować więc interfesy w tym pomagają. Na podstawie interfesu wiesz odrazu co obiekt robi. Dostając sam interfesj bez reszty programu jesteś w stanie napisać daną klase.
Przydaje się przy wiekszych projektach. W grupowej pracy się przydaje ![]() Z czasem każdy zaczyna widzieć ich przydatność ![]() Ten post edytował smialy 23.02.2008, 19:24:53 -------------------- openSuse, Eclipse i Aptana - daje rade
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Interfejsy służą do tego, aby wymusić na danej hierarchi klas zdefiniowanie określonych metod. Po to się to stosuje, aby ustalić "protokół", sposób "porozumiewania się", czy też korzystania z tych klas. Załóżmy, że nad projektem pracuje kilku programistów, jeśli zdefiniuje się interfejsy to nie ważne co będzie w klasie implementującej jakiś tam interfejs, bo wiadome że w interfejsie są określone wymagane metody publiczne, z których to korzystamy z danej klasy. Programista wtedy wie, że trzeba dane metody, które służą do korzystania z obiektów danej klasy, zaimplementować, przez co jest zunifikowany dostęp do klas należącej do tej samej gałęzi hierarchi
![]() Przeanalizuj przykład Cysiaczka. Można dopisać takie coś:
Dzięki temu zapewniamy to, że klasa "Man" i "Woman" mają metody "sayGoodMorningTo", więc w metodzie CommunityMambers::sayGoodMorning() nie wyskoczy błąd, że dany obiekt nie posiada metody "sayGoodMorningTo". -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje Ci jakoś mi to podeszło twoje tłumaczenie oczywiście wszyscy wypowiadający się(mądrze dostają piwko) Do zamknięcia
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 21:49 |