Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%)
|
Witam
dziś szukając informacji o abstrakcji obiektów natchnołem się na ten artykuł http://blog.dywicki.pl/2007/04/04/o-abstra...-i-interfejsow/ Zrozumiałem tyle: Abstrakcja -Wymusza tworzenie obiektów w klasach pochodnych -Przekazuje informacje o działającym skrypcie Interfejs -Wymusza użycie metod w klasach impletujących go -Przekazuje nadzędzia działającego systemu Używamy Klasę abstrakcyjną gdy: -Mamy mniejszy system -Musimy zawrzeć w funkcji która będzie wymuszona jakiś kod -Chcemy używać niektórych z jej metod Interfejs gdy: -Mamy wielki system -Wymuszamy użycie metod w których nie musimy zawierać kodu -Definiujemy medtody które zainicjujemy w klasach impletujących interfejs Nie zrozumiałem: -Co to jest Elastyczność obiektu -"Budowa złożonej aplikacji bez użycia interfejsów jest posunięciem wysoce nierozsądnym, ponieważ to właśnie dzięki nim, nawet w językach kompilowanych ze statycznym typowaniem jesteśmy w stanie zyskać nadzwyczajnie elastyczny kod" -"Nawet jeśli koncepcja implementacji obróci się o 180 stopni to nasz interfejs, będący swoistą fasadą, ukryje te zmiany przed osobami, których one nie dotyczą bądź nie interesują." Dziękuje z góry oraz proszę o wyrozumiałośc ale jeśli mi ktoś nie wytłumaczy nie pojmę niczego tego do końca. Ten post edytował daniel1302 17.08.2008, 09:26:03 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. |
Chodzi o to, aby zmiana implementacji jakiejś metody nie pociągała za sobą konieczności zmian w wielu miejscach, albo co gorsza, zmian w kodzie użytkującym tą metodę. np. Dwie klasy News (ahh, nieśmiertelny przykład) - ten sam interfejs, ale działanie kodu wewnątrz klas jest inne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Metoda News::getComment(), pobiera identyfikator jako parametr i wyszukuje odpowiadający mu obiekt w lokalnej kolekcji. Możemy też rozbudować funkcję tak, aby w przypadku nieznalezienia obiektu, szukała w bazie danych, a dopiero potem zwracała błąd. Zauważ, że zawsze przekazujemy tylko identyfikator - nie musimy nic zmieniać w wywołaniu tej metody. Teraz mając system, który ma np. 10 klas News (np dla Swiat, Polska, Warszawa), metoda wyszukiwania i pobierania Komentarzy może być różna dla każdej z nich. Jeszcze mały przykład (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
To jest właśnie elastyczność - ukrycie implementacji za interfejsem. Pozdrawiam. Przenoszę na OOP |
|
|
|
daniel1302 O abstrakcji klas i interfejsów 17.08.2008, 08:12:04
daniel1302 Czyli elastyczność to zastosowanie interfejsów/ kl... 17.08.2008, 16:08:05
Cysiaczek Nie do końca. W pewnym stopniu tak, ale tu chodzi ... 17.08.2008, 16:16:25
daniel1302 Czyli Elastyczność to jest:
Ktośu... 17.08.2008, 16:25:44
Cysiaczek To jest interfejs i wtedy masz rację. Zapewnia on ... 17.08.2008, 16:38:01
daniel1302 [PHP] pobierz, plaintext <?phpInterface Validat... 17.08.2008, 18:25:47
Crozin [PHP] pobierz, plaintext <?metoda_czy_funkcja... 17.08.2008, 19:10:09
daniel1302 Dziękuje rozjaśniło mi się Pozdrowienia dla dwóch ... 18.08.2008, 05:27:43 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 17:53 |