![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam,
zastanawiam się jak inicjować obiekty o wielu właściwościach. Dajmy na to mam produkt, który posiada 20 własności takich jak cena, nazwa, kategoria, marka itd itp. Czy lepiej przekazać dużą tablicę asocjacyjną do konstruktora, czy zainicjować pusty obiekt i potem wywołać serię poleceń typu $produtk->setName() itd. A może jest jeszcze jakiś inny patent? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Ja również jestem zwolennikiem przesyłania danych "zapakowanych" w małe obiekty.
W znaczący sposób ułatwia to sprawdzanie poprawności wprowadzanych danych, a także odwoływanie się do nich. Chciałbym jednak zwrócić uwagę na jedną rzecz. Bezsensowne wydaje mi się w takiej sytuacji korzystanie z _get i _set - ponieważ sami pozbywamy się mechanizmu do wykrywania literówek w nazwach atrybutów. Nie lubię jednak tworzenia dziesiątek metod typu setName( $sName ){ $this ->sName = $sName; } Dlatego zazwyczaj rezygnuję z ich tworzenia wszędzie tam, gdzie nie są potrzebne jakiekolwiek operacje wykonywane podczas pobierania lub wprowadzania danych. Zamiast tego deklaruję te atrybuty jako publiczne, a dzięki temu przy włączonym E_ALL odrazu dostaję informację o próbie utworzenia atrybutu, który nie został zdefiniowany. ps. No i ma się wartości domyślne (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 13:32 |