![]() |
![]() |
![]()
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. -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
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%) ![]() ![]() |
W sumie ma to sens
![]() Dziękuję za pomoc. Pozdrawiam, Kazik. |
|
|
![]()
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:
-------------------- Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe. Albert Einstein |
|
|
![]()
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. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 04:15 |