Implementować czy rozszerzać?, implements vs. extends |
Implementować czy rozszerzać?, implements vs. extends |
26.09.2008, 23:18:34
Post
#1
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) |
Czy są jakieś utarte reguły dotyczące wyboru jednej z tych dwóch metod ?
Mam klasę ( w sumie nie jedną ) która wymaga Iterator'a. Pytanie tylko czy mam zaimplementować interfejs iteratora czy rozszerzyć i nadpisać kilka metod. Nie wiem którą z opcji wybrać. Szukam jakiejś reguły którą mógłbym się kierować przy wyborze. |
|
|
27.09.2008, 01:00:14
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) |
Implmentacja bo szybsza - dziedziczenie jest strasznie powolne :]
-------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
27.09.2008, 09:56:13
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) |
Dziedziczenie stosuj tam gdzie masz zamiar skorzystać z polimorfizmu.
|
|
|
27.09.2008, 13:25:54
Post
#4
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) |
To lubię w tym forum. Konkretne i szybkie odpowiedzi
To jeszcze prosiłbym o sprawdzenie moich wypocin. Zastanawiam się czy nie lepiej wydzielić część iteracyjną do klasy abstrakcyjnej z abstrakcyjną metodą current(), bo będę chciał ten mechanizm zastosować w około 20 klasach. Ten post edytował orglee 27.09.2008, 14:23:47 |
|
|
27.09.2008, 19:51:52
Post
#5
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Dlaczego masz:
Przecież wygodniej mieć obiekt. Do tego iterator powinien przechowywać tylko jeden typ elementów. Bo inaczej nie wiadomo co się dzieje, że PHP umożliwia różne dziwne rzeczy, nie znaczy że trzeba z tego korzystać. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
27.09.2008, 21:17:01
Post
#6
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) |
Bo to jest kolekcja a pojedynczy element zwracam już jako obiekt.
Jak w takim razie powinno to wyglądać poprawnie ? Ten post edytował orglee 27.09.2008, 21:17:30 |
|
|
28.09.2008, 07:26:21
Post
#7
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 12 Dołączył: 3.03.2008 Skąd: łódzkie Ostrzeżenie: (0%) |
OT: Czy Ty celowo pomijasz dwukropek w Ternary Operatorze ? Czy może robisz tak ze względu na kolorowanie składni na forum, albo bez tego dwukropka też działa?
Np. tutaj:
Ten post edytował kwiateusz 28.09.2008, 07:38:12
Powód edycji: kwiateusz: podejrzewam ze to wina forum, problem rozwiazalismy, ale sprawdzamy czy nie zepsuje wiecej niz naprawi :)
-------------------- "Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! | Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!! |
|
|
28.09.2008, 07:46:04
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
@jarek_bolo: BBCode forum coś się posypało i usuwa dwukropki.
|
|
|
28.09.2008, 08:51:40
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) |
|
|
|
28.09.2008, 08:58:43
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
@mike: przyznam się, że myślałem, że już 5.2.3 to wprowadzili
|
|
|
4.10.2008, 08:36:04
Post
#11
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 10 Dołączył: 20.05.2005 Ostrzeżenie: (0%) |
@mike: a jeżeli warunek logiczny nie będzie spełniony to jaką wartość nam zwróci? NULL?
|
|
|
22.10.2008, 12:20:05
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) |
@NuLL:
Cytat Implmentacja bo szybsza - dziedziczenie jest strasznie powolne :] Eeee? Mozesz to wyjasnic? @mike Cytat Dziedziczenie stosuj tam gdzie masz zamiar skorzystać z polimorfizmu. Eh? a z interfejsem to nie da sie wykonac polimorfizmu? java: Kod interface ICostam {} class CostamImpl_1 implements ICostam{} class CostamImpl_2 implements ICostam{} ... ICostam cos = new CostamImpl_1(); cos = CostamImpl_2(); -------------------- Nie lubię jednorożców.
|
|
|
22.10.2008, 12:36:17
Post
#13
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) |
|
|
|
22.10.2008, 13:18:03
Post
#14
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) |
@mike: dalej nie czaje czemu niby polimorfizm [w programowaniu obiektowym] da sie zrobic tylko z uzyciem dziedziczenia.
moj kod powinien raczej wygladac: Kod interface ICostam { public function do(); } class CostamImpl_1 implements ICostam{ ...do()} class CostamImpl_2 implements ICostam{..do()} ... ICostam cos = new CostamImpl_1(); cos.do(); cos = CostamImpl_2(); cos.do(); Bo interfejsy to wlasciwie puste klasy abstrakcyjne i pozwalajace na wykonanie wielodziedziczenia (extends + implements) == mamy dziedziczenie, wiec w czym problem? -------------------- Nie lubię jednorożców.
|
|
|
9.11.2008, 20:28:36
Post
#15
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 23.02.2005 Ostrzeżenie: (10%) |
Polimorfizm możemy osiągnąć poprzez dziedzicznie, a także przez implementację interfejsu.
|
|
|
10.11.2008, 10:48:24
Post
#16
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) |
Ja tylko umieszcze cytat. Reszte flame'a z checia poczytam
Cytat Polimorfizm jest trzecim podstawowym skladnikiem jezyka programowania zorientowanego obiektowo - zaraz po abstakcji danych i dziedziczeniu. Dostarcza on kolejną metodę separacji interfejsu od implementacji, oddzielania co od jak. Bruce Eckel, Thinking in Java ed. 4, s. 241. -------------------- "Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog KulturalnyChlebik |
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 00:29 |