Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jakie metody w klasie News - jak ma to współgrać?
Joachim Peters
post
Post #1





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


Witam,

jestem po lekturze naprawdę wielu tematów na tym forum, w okręg moich zainteresowań weszła także książka "PHP5 Obiekty, wzorce, narzędzia".
Mimo to mam problem co do ułożenia odpowiedniej klasy. Moje problemy:

1. Czy w klasie np. do obsługi newsów powinna znajdować się metoda do wyświetlania konkretnego newsa/newsów jeżeli nie stosuje ścisłego MVC (chce napisać stronę zintegrowaną z innym skryptem od którego będę używał kilka klas i funkcji, m.in. do wyświetlania w przeglądarce html)? Jeżeli nie to powinienem zrobić dla niej osobną funkcję (bez klasy)?

2. Idąc dalej przykładem klasy do obsługi newsów chciałbym zapytać czy lepiej definiować ID newsa już w konstruktorze czy ustalać go manualnie przez metodę np. setId()?

3. Czy opłaca się stworzyć osobną metodę do dodawania elementów do tablicy z danymi newsa (np. addParam($key, $value)(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) , czy wyjdzie na to samo (w sensie obiektowym) przekazując pełną tablicę prosto do metody np. update()?

Poniżej zarys klasy:
  1. <?php
  2. class News {
  3. private $newsId  = 0;
  4. private $params = array();
  5.  
  6. public function setId($id) { } // Ustawia id newsa na którym chcemy operować
  7. public function submit() { } // Jeżeli newsId > 0 to aktualizuje, jeśli odwrotnie to tworzy nowy rekord
  8. private function insert() { }
  9. private function update() { }
  10. public function delete() { }
  11. public function addParam($key, $value) { } // Dodaje parametry typu nazwa newsa, autor, treść, źródło do tablicy danych
  12. public function print() { } // Wyświetla newsa, jeżeli ustaliliśmy Id do wyświetla wybrany news, jeżeli nie to
     wszystkie
  13. private function printSpecific() { } 
  14. private function printAll($perPage) { }
  15. }
  16. ?>


Jest tu sens OOP? Co zmienić aby było lepiej?

Pozdrawiam i z góry serdecznie dziękuje za wyjaśnienia!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sedziwoj
post
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@Black-Berry
A co daje podejście obiektowe, przecież to też jest gorsze wydajnościowo niż strukturalny kod ;]
Zwiększa czytelność i elastyczność kodu, zasada że klasy i ich obiekty mają jedno konkretne zadanie, po to się rozbija na funkcjonalność. Klasa News ma się zając konkretną aktualnością, nie obchodzi jej skąd się wzięła, czy jest częścią większego zbiory.
Go to the top of the page
+Quote Post
Black-Berry
post
Post #3





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat(Sedziwoj @ 2.09.2008, 01:17:20 ) *
@Black-Berry
A co daje podejście obiektowe, przecież to też jest gorsze wydajnościowo niż strukturalny kod ;]
Zwiększa czytelność i elastyczność kodu, zasada że klasy i ich obiekty mają jedno konkretne zadanie, po to się rozbija na funkcjonalność. Klasa News ma się zając konkretną aktualnością, nie obchodzi jej skąd się wzięła, czy jest częścią większego zbiory.
Chodziło mi o coś wręcz przeciwnego. Myślałem, że LBO pije do tego ze klasy statyczne są szybsze. Wogóle to mam mętlik straszny bo każdy mówi co innego: jedni ze singletny są złe, inni ze rejestry, jeszcze inni ze nie wolno używać globalsów... Pooli dochodze do wniosku że nikt ni ma racji, a liczy się tylko wygoda. Zresztą jak ma być 1 obiekt z danej klasy tylko to trzeba napisać to w komentarzach (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) A jak ktoś jest na tyle głupi żeby tworzyć 2 klasy dbDriver to już jego problem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Od dzisiaj tylko czyste obiekty bez żadnych udziwnień singletonami i klasami statycznymi stosuję... Od jutra bo dzis juz idę w kimę... sory za odejście od tematu (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) poprostu musiałem się wyżalić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam wszystkich.
Go to the top of the page
+Quote Post

Posty w temacie
- Joachim Peters   Jakie metody w klasie News - jak ma to współgrać?   28.08.2008, 17:49:48
- - LBO   Generalnie to zależy od ciebie, ale jeżeli obiekt ...   28.08.2008, 18:03:52
- - terabit   @LBO takie pytanko czy jest jakas roznica miedzy...   28.08.2008, 18:07:02
- - LBO   Jest różnica, bo w metodach statycznych opakowujes...   28.08.2008, 18:17:59
- - Sedziwoj   Ogólnie chyba [PHP] pobierz, plaintext <?php$ne...   1.09.2008, 23:35:38
- - Black-Berry   Po co te klasy statyczne? Mi się na przyk...   1.09.2008, 23:45:47
- - Sedziwoj   @Black-Berry A co daje podejście obiektowe, przeci...   2.09.2008, 00:17:20
|- - Black-Berry   Cytat(Sedziwoj @ 2.09.2008, 01:17:20 ...   2.09.2008, 00:46:13
- - LBO   Cytat(Sedziwoj @ 2.09.2008, 00:35:38 ...   2.09.2008, 00:28:26
|- - Sedziwoj   Cytat(LBO @ 2.09.2008, 01:28:26 ) Moż...   2.09.2008, 00:39:38
- - LBO   Heeh, ja to wiem. Pytam się czy takie rozbicie jes...   2.09.2008, 01:41:32
- - Cysiaczek   Globalsów się nie używa... bo nie Singletona się ...   2.09.2008, 06:08:11
|- - Sedziwoj   Cytat(Cysiaczek @ 2.09.2008, 07:08:11...   2.09.2008, 07:41:13
- - Black-Berry   @Sedziwoj Z tego co mówisz pośrednio wynika, ...   2.09.2008, 10:24:36
|- - Sedziwoj   Cytat(Black-Berry @ 2.09.2008, 11:24...   2.09.2008, 10:38:34
|- - Black-Berry   Cytat(Sedziwoj @ 2.09.2008, 11:38:34 ...   2.09.2008, 10:44:28
- - Cysiaczek   Dlaczego tak wszyscy nie lubią Registry? Przecież ...   2.09.2008, 10:39:49
- - Sedziwoj   @Cysiaczek Bo taki Registry, wydaje mi się niedale...   2.09.2008, 10:46:11
|- - Black-Berry   Cytat(Sedziwoj @ 2.09.2008, 11:46:11 ...   2.09.2008, 10:48:04
|- - Sedziwoj   Cytat(Black-Berry @ 2.09.2008, 11:48...   2.09.2008, 11:03:09
- - Cysiaczek   CytatRegistry jest o tyle brzydki że trzeba wiedzi...   2.09.2008, 11:35:59
|- - Black-Berry   Cytat(Cysiaczek @ 2.09.2008, 12:35:59...   2.09.2008, 12:16:38
|- - Sedziwoj   Cytat(Black-Berry @ 2.09.2008, 13:16...   2.09.2008, 12:19:12
- - LBO   Cytat(Cysiaczek @ 2.09.2008, 12:35:59...   2.09.2008, 11:54:07
- - Black-Berry   @Cysiaczek A tak z ciekawości to czy problem ...   2.09.2008, 12:35:30
- - LBO   W takim przypadku jestem za Zendowym rozwiązaniem ...   2.09.2008, 13:14:46
- - Black-Berry   Chcesz zob aczyć coś magicznie ślic...   2.09.2008, 13:19:55
- - LBO   o_O mój boże Zrób z tego obiekt kontekstu. Umieść...   2.09.2008, 13:42:24
- - Black-Berry   A czy taki obiekt kontekstu przekazywany do kazdeg...   2.09.2008, 13:52:33
- - LBO   Nie bo w pełni kontroluję gdzie on jest dostępny.   2.09.2008, 13:58:18
- - Black-Berry   No to teraz już coś rozumiem... Ale w całym framew...   2.09.2008, 14:02:57
- - LBO   Hmmm... jeden i tylko jeden. Cały myk w tym, że ró...   2.09.2008, 14:10:05
- - Black-Berry   @LBO: Dostrzegam Powiedz mi jeszcze po co Ci są p...   2.09.2008, 14:43:26
- - LBO   A kiedy dublujesz settingsy? Powiem Tobie - kiedy ...   2.09.2008, 15:10:41
- - Black-Berry   @LBO wszystko super. Metoda Cysiaczka trochę ...   2.09.2008, 21:20:52
- - LBO   Cytat(Black-Berry @ 2.09.2008, 22:20...   2.09.2008, 21:26:34
|- - Black-Berry   Dzięki za rady:) Wezmę je pod uwagę przy pisaniu n...   2.09.2008, 21:29:34
- - Cysiaczek   To, co pokazałem, to pewna wariacja, a nie sprawdz...   2.09.2008, 21:28:13
|- - Sedziwoj   Cytat(Cysiaczek @ 2.09.2008, 22:28:13...   2.09.2008, 23:26:00
- - LBO   Cytat(Cysiaczek @ 2.09.2008, 22:28:13...   2.09.2008, 21:33:29


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 04:35