Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Poczuc OOP - zakladanie bazy firm
wojckr
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 6.05.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam,
postaram się pisać zwięźle i na temat.
Dotychczas projektowalem proceduralnie. Zapoznalem sie z odstawiami i filozofia OOP. Jednak jeszcze tego nie "czuje".
Chcę stworzyć bazę firm przy użyciu OOP. Nie wiem czy dobrze mysle, ale obiektem bylaby firma, ktora mialaby swoja nazwe, adres,telefon itd.(własciwosci), a firme ta moznaby bylo dodawac, usuwac, edytowac i wyswietlac (metody).
Sprobowalem projektowac klase, ale zauwazylem, ze wrzucam funkcje do klasy i w zasadzie proceduralnie zrobilbym to chyba szybciej...

Czy mozecie podpowiedziec jako doswiadczeni w OOP, jak zabralibyscie sie do tworzenia takiej bazy firm z uzyciem OOP i czy do tego wystarczy jedna klasa czy wiecej niz jedna?

Dzieki wielkie z gory za wskazowki (mam wrazenie, ze potrzebuje kilku wskazowek, a potem pojdzie z gorki).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Zaprezentowałeś klasyczny przykład ujęcia kodu proceduralnego w klasie. Programowanie obiektowe to nie tylko klasy z kodem, ale przede wszystkim relacje pomiędzy obiektami. Obiekt firma może składać się z kilku obiektów, zwłaszcza a Twoim przykładzie, w którym wydzielasz funkcje zapisujące i odtwarzające dane z bazy.
Każda klasa powinna mieć ściśle wydzielone zadanie. Twoja tego nie ma, bo:
1. Obsługuje bazę danych
2. Wypisuje informacje dla użytkownika
3. Przechowuje informacje (o firmie)
4. Sama siebie kontroluje.

Widzę tu co najmniej 3 obiekty.

Również logika nieco szwankuje, bo jeśli za nią pójść, to obiekt Człowiek powinien mieć takie metody:
  1. <?php
  2. $człowiek= new Czlowiek('cysiaczek');
  3. $czlowiek->dodajCzlowiek('wojckr');
  4. $czlowiek->wypiszCzlowiek();// a może wypiszCzlowieki() ?
  5. ?>

Krótko mówiąc - nie ma to ani rąk, ani nóg.
Tu pomoże dobra książka na temat projektowania, do czego Cię zachęcam.

Małe propozycje:
1. Patrz na obiekty również pod kątem ich użytkowników (kodu, który je użytkuje)
2. Metody powinny zwracać wartości do użytkownika

Pozdrawiam. : )

P.S
Na pocieszenie napiszę, że jedna z moich klas o nazwie News dziedziczyła po obiekcie Pager, który odpowiadał za łamanie stron wyników tongue.gif


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 22:53