![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 8 Dołączył: 10.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, tak jak w temacie ... Wszedłem w świat OOP jakiś czas temu, teraz robię strony na Kohanie (IMG:style_emoticons/default/smile.gif) Bardzo przypadła mi do gustu ... Możecie powiedzieć mi kiedy używać dziedziczenia ? Wiem że jest to `jakby` rozdrabnianie klas ... Lecz nigdy nie mogłem znależć praktycznego zastosowania dziedziczenia w swoich skryptach (IMG:style_emoticons/default/smile.gif) Prosiłbym kogoś o takie szybkie i łopatologiczne rozpisanie jakiegoś skryptu np. newsów, artykułów czy czego kolwiek (byle nie zwierząt (IMG:style_emoticons/default/tongue.gif) ) ... Nie mówię że ma być kod tylko jak to ma wyglądać w praktyce, w formie jakiegoś drzewka lub czego kolwiek (IMG:style_emoticons/default/smile.gif)
No i jeszcze jedno .. Jak dziedziczyć w Kohanie ? Bo widzę że moje wszystkie modele i kontrolery już dziedziczą klasy wyznaczone przez Kohane (IMG:style_emoticons/default/smile.gif) _Models i _Controllers ... Da się jeszcze podpiąć coś czy nie bardzo (IMG:style_emoticons/default/smile.gif) ? Przepraszam jeżeli są to jakieś durne pytania, ale niepotrafie zastosować tego w praktyce (IMG:style_emoticons/default/smile.gif) Pozdrawiam Ten post edytował Damiankossek 24.03.2010, 14:50:44 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak kolega wyżej napisał, albo możesz sobie spojrzeć np. w manual php na klasy DOMNode i przyległe. Np. DOMDocument po niej dziedziczy - DOMNode zapewnia jakąś podstawową funkcjonalność wspólną dla każdego swojego potomka, a potomkowie dodają coś od siebie, bo np. nie było sensu żeby dana metoda znalazła się wyżej w hierarchii (w tym przypadku w klasie DOMNode), bo jest specyficzne tylko dla nich. W ten sposób każdy stworzony obiekt posiada tylko to co jest mu niezbędne. Dla programisty natomiast łatwiej jest zapamiętać że potrzebna mu metoda znajduje się np w klasie DOMElement, niż szukać jej w gąszczu metod DOMNode.
Oczywiście nie musisz wcale używać dziedziczenia, ale bardzo ułatwia ono ponowne użycie kodu. Na przykładzie obsługi plików:
Dysponujesz klasą, która posiada podstawową funkcjonalność wspólną dla każdego pliku. Teraz powiedzmy że chciałbyś do swojego skryptu, w którym używasz tej klasy dodać pewną specyficzną funkcjonalność, np. dla obrazków i plików tekstowych. Masz dla wyjścia - albo przerobić (dodać) kod klasy file i zmienić jej nazwę (dwukrotnie), albo dziedziczyć:
Kumasz? (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 22:14 |