-
Data: 2010-06-30 21:06:17
Temat: Re: newbie: metody w OOP
Od: Mariusz Marszałkowski <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 30 Cze, 15:13, j...@p...onet.pl wrote:
> Mam pytanie dot. programowania obiektowego:
> Czy zasady wydzielania metody przypominaj zasady wydzielania podprogramu?
> Zauwa y em, e w aplikacjach obiektowych d y si do wi kszej ilo ci drobnych
> metod (i klas) a nie mniejszej ilo ci bardziej z o onych.
>
> --
> Wys ano z serwisu OnetNiusy:http://niusy.onet.pl
Przykładem bardzo małej metody jest np.:
class Pies {
int dlugosc_zycia;
Rasa rasa;
Pies( Rasa rasa, int dlugosc_zycia ) {
this->dlugosc_zycia = dlugosc_zycia;
this->rasa = rasa;
}
int get_dlugosc() {
return dlugosc_zycia;
}
};
Nic nie stoi na przeszkodzie aby tak małych metod nie stosowac, a
bezposrednio
odwolywac sie do pola dlugosc zycia, tym bardziej do odczytu. Jednak w
przyszlosci
moze zapragniesz do klasy pies dodac np. klimat w jakim zyje i moze
sie
okazac ze niektore rasy zyjace w tropiku dozywaja o 10% krocej niz w
klimacie
umiarkowanym. Majac metode, zmodyfikujesz caly program natychmiast:
return dluosc_zycia * ( klimat == "torpik" && rasa.zimnolubna() ?
0.9 : 1.0 );
Odwolujac sie do pola, takiej mozliwosci nie zostawiasz sobie na
pozniej.
Poza tym do metody get_dlugosc mozesz dodc nowy parametr i rozszerzyc
funkcjonalnosc w dowolny sposob, a kompilator ladnie wykryje wszystkie
miejsca gdzie uzyles wczesniej tej metody bez uzycia parametrow.
Z punktu widzenia dobrego projektu, a programowanie obiektowe jest po
to
aby projekty byly dobre, zawsze lepiej jest rozbic kod na duza ilosc
malych
metod i malych klas.
Pozdrawiam
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-03-10 roaming
- 2025-03-10 wodor
- 2025-03-10 Ostrów Wielkopolski => NodeJS Developer <=
- 2025-03-10 Białystok => System Architect (background deweloperski w Java) <=
- 2025-03-10 Częstochowa => Backend Developer (Node + Java) <=
- 2025-03-10 Poznań => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produkc
- 2025-03-10 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-03-10 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-10 Chiny-Kraków => Senior PHP Symfony Developer <=
- 2025-03-10 Szczecin => Key Account Manager IT <=
- 2025-03-10 Warszawa => Node.js / Fullstack Developer <=
- 2025-03-10 Warszawa => Data Engineer (Tech Leader) <=
- 2025-03-10 Gliwice => Business Development Manager - Network and Network Security
- 2025-03-10 Warszawa => Presales Engineer IT <=
- 2025-03-10 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS