![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czesc.
Mam dylemat zwiazany z budowa klasy obiektow i jej klasy kolekcji. Zalozmy, ze obiektami sa goscie (Guests) Obecnie robie to tak: 1. Klasa pojedynczego obiektu
2. Klasa kolekcji obiektow:
Teraz pytania: 1. Metoda walidujaca powinna byc w klasie Goscia czy klasie kolekcji Gosci czy nie ma to znaczenia? 2. Dodanie nowego goscia powinno zostac poprzedzone utworzeniem obiektu klasy kolekcji czy tez tak jak ponizej wywolane bez kreacji obiektu? 3. Przekazanie obiektu przez referencje "&" jest zawsze prawidlowym rozwiazaniem?
4. Kasujac obiekt powinienem tworzyc instancje obiektu kolekcji i samego obiektu goscia jak ponizej, czy tez wywolac ja bezposrednio?:
Z gory dziekuje za merytoryczne odpowiedzi! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
1. Metoda walidujaca powinna byc w klasie Goscia czy klasie kolekcji Gosci czy nie ma to znaczenia? 2. Dodanie nowego goscia powinno zostac poprzedzone utworzeniem obiektu klasy kolekcji czy tez tak jak ponizej wywolane bez kreacji obiektu? 3. Przekazanie obiektu przez referencje "&" jest zawsze prawidlowym rozwiazaniem? 4. Kasujac obiekt powinienem tworzyc instancje obiektu kolekcji i samego obiektu goscia jak ponizej, czy tez wywolac ja bezposrednio?: ad 1. Uważam, że wszelkie metody walidujące powinny być w klasie Guest, ponieważ może przyjść w przyszłości ochota na stworzenie nowego obiektu typu Guest poza kolekcją, wtedy taką metodę już będziesz "miał pod ręką" ad 2. Tu wedle uznania, ja osobieście nie tworzyłbym obiektu kolekcji, tylko odwoływałbym się dokładnie tak jak pokazałeś w przykładzie (przez metody statyczne) ad 3. W PHP5 zawsze jest wszystko przekazane przez referencję, więc '&' jest niekonieczne i nie musisz tego używać. Jeśli chcesz pracować na kopi obiektu używaj odwrotnego operatora do '&', czyli clone ad 4, Jak już masz kolekcję to lepiej użyć kolekcji i w niej zaimplementować fukcję kasującą, tam dobrze jest korzystać z unset() Pozdrawiam Ten post edytował Cezar708 17.03.2008, 16:25:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 07:10 |