Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 170 Pomógł: 4 Dołączył: 11.08.2006 Ostrzeżenie: (10%)
|
Witam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
mam np taki oto kod:
i nasuwa się pytanie, co zrobić żeby tego tyle razy nie powtarzać ? mam jakąś tam klase do zarządzania Osobami i praktycznie w każdej metodzie musze powtarzać ten sam fragment kodu... jak wy to rozwiązujecie? czy poprostu zrobić dodatkową metodę do której będę przekazywać coś takiego:
choć to pewnie nia zawsze się sprawdzi... pisząc obiektowo raczej nie powinno się powtarzać kilka razy (DRY;)) jakieś rozwiązanie ? z góry dzięki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 10 Dołączył: 30.06.2008 Ostrzeżenie: (0%)
|
Nazwa klasy wskazuje że jest to fabryka bo bardzo łatwo przerobić tą klasę tak żeby fabryką była (fabryka czyli klasa która serwuje różne obiekty w zależności od parametrów) i jeśli w projekcie korzystasz z więcej niż jednej bazy danych należałoby przekazać do metody PdoFactory::get() jeszcze jeden parametr dzięki któremu będziesz mógł uzyskać połączenie z określoną bazą danych Zaprezentowany wyżej kod jest implementacją wzorca projektowego o nazwie Singleton i sprawdza się bardzo do kodu który ma być dostępny w dowolnym miejscu twojego skryptu. Jest to tak naprawdę opakowana w klasę zmienna globalna dlatego radze nie nadużywać tego wzorca. Mając tak zdefiniowaną klasę obiekt klasy PDO pobierasz przez:
Metoda z twojego pierwszego postu może wyglądać teraz np tak:
albo obiekt klasy PDO pobrać już w samym konstruktorze i przypisać go do prywatnej składowej tej klasy. Pozwoliłem dodać sobie dwa komentarze do kodu na jego temat. Ten post edytował Methestel 8.04.2009, 17:43:29 |
|
|
|
terabit [SQL / PDO...] Powtarzający się kod 31.03.2009, 17:14:51
Zyx Czy ja dobrze widzę, że łączysz się z bazą za każd... 31.03.2009, 18:05:19
terabit Czy tak będzie lepiej ? :
[PHP] pobierz, plaintext... 8.04.2009, 11:32:34
megawebmaster W __construct() też musisz mieć try ... catch() bo... 8.04.2009, 15:09:47 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 00:42 |