Komputery, Windows i masa kompletnego bałaganu. Tak, to mój dziennik.

ktos.jogger


Przykłady OOP czasem mnie rozbrajają

24 listopada 2006, 16:48:08. Kodowanie , 0.

class Predator extends Animal
{
    public function bite($animal)
    {
        if ($animal->isSmall())
            $animal->kill();
    }
}

Dobre też było, gdy prezentując wzorzec Dekoratora, człowiek "udekorował" klasę Samochód do klasy Pożarniczy (przez co dostępna była metoda wysunDrabine()), a Motor do Policyjny (przez co dostępna była metoda wlaczKoguta()). A ciekawe co by było gdyby Motor zmodyfikować dodając drabinę? :-)

Pomysłowość w prezentowaniu analogii klas i obiektów do rzeczywistości nie zna granic :-)

Komentarze

  1. Tomasz Topa
    24 listopada 2006 18:10:11

    Programowanie to dla mnie czarna magia... Jak już opanowałem strukturalne PHP w zakresie mi potrzebnym, to mi wyskoczyli na informie z Javą i pełną obiektówką... programowanie, blah :)

    Ale takie "życiowe" przykłady bardzo przemawiają do Ciebie :)

  2. Uzytkownik
    24 listopada 2006 20:49:18

    Widziałem klasy Pracownik i Menedzer (extends Pracownik). Tylko jak zaimplementować metodę Awans?

    Pozdrawiam

  3. Jajcuś
    24 listopada 2006 21:39:29

    Użytkownik: Zależy od języka. Np. w Pythonie można zmienić klasę obiektu (jest parę ograniczeń, ale w przypadku awansu nie powinny one przeszkadzać), więc problemu nie ma.

  4. Uzytkownik
    24 listopada 2006 21:42:21

    To była Java

  5. Sabayon
    25 listopada 2006 00:21:45

    Uzytkownik: takie klasy:

    Kadra: awansuj(Pracownik $pracownik), wywal(Pracownik $pracownik);
    abstract Pracownik;
    Menedzer extends Pracownik;
    Szef extends Pracownik;

    Ha! :) Przykład dla PHP, ale Java jest przecie podobna.

  6. Uzytkownik
    25 listopada 2006 00:23:10

    Nie prościej zrobić klasę Pracownik i Stanowisko?

  7. Sabayon
    25 listopada 2006 13:23:18

    To już zależy, jak będziesz potem chciał to wykorzystać... Możliwości wiele. ;)

Zostaw komentarz

W komentarzach dozwolona jest składnia Markdown do formatowania.