![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 2.08.2010 Ostrzeżenie: (0%)
|
Witam,
Mam pytanie o różnice między takimi dwoma rozwiązaniami, chodzi o konstruktory. Rozwiązanie 1
W tym wypadku jeżeli mamy konstruktor to aby utworzyć obiekt trzeba zrobić tak:
Rozwiązanie 2
Tworzymy obiekt:
Moje pytania są następujące: 1. Które rozwiązanie jest bardziej poprawne? 2. Jaka jest różnica między tymi dwoma rozwiązaniami? Będę bardzo wdzięczny jeżeli ktoś znajdzie chwilkę na wytłumaczenie mi różnic i poprawności rozwiązania. Z góry bardzo dziękuję i pozdrawiam. Kazik. |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%)
|
Oba rozwiązania są. kiepskie.
w konstruktorze zrób połączenie z bazą, a w destruktorze rozłącz się z bazą. Krótko i na temat. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 2.08.2010 Ostrzeżenie: (0%)
|
Oba rozwiązania są. kiepskie. w konstruktorze zrób połączenie z bazą, a w destruktorze rozłącz się z bazą. Krótko i na temat. To ja chyba nie bardzo rozumiem po co jest konstruktor, jeżeli ma być w nim tylko połączenie z bazą. Wiem, że to pytanie jest banalne, ale czy możesz mi to wytłumaczyć łopatologiczne? Dziękuję, Kazik. |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa |
Konstruktor jest po to abyś zadeklarował coś co będzie wykorzystywane w wszystkich/większości metodach
czyli deklarujesz w nim np. $this->db=new database(); i w metodach typu add(), delete(), get() odnosisz się do $this->db zamiast robić 3 razy $db=new database(); |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 2.08.2010 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%)
|
http://en.wikipedia.org/wiki/Fluent_interface
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%)
|
oraz do tego co już napisał starach:
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Cytat Konstruktor jest po to abyś zadeklarował coś co będzie wykorzystywane w wszystkich/większości metodach Nie, nie od tego jest (patrz pkt 1).1. Do konstruktorów przekazujemy tylko i wyłącznie dane potrzebne do działania obiektu. W przypadku takiego obiektu jak Osoba takie dane jak adres email czy strona www nie są potrzebne do jego działania. Ba! Imię i nazwisko nie jest potrzebne. 2. Jeden obiekt, jedno zadanie: ten obiekt ma reprezentować jakąś osobę, więc niech zajmuje się tylko tym. Takie rzeczy jak zapisywanie danych w bazie danych na podstawie tego obiektu pozostaw innym obiektom (patrz: post @plurr-a). Osobiście uważam, że ActiveRecord (czyli to co zaimplementowałeś) nie jest zbyt dobrym podejściem. |
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 20:19 |