Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Budowa aplikacji - system newsów
symonides
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 12.11.2010

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


Cześć,
mam kolejny problem z rozplanowaniem kodu... Teraz sytuacja dotyczy systemu newsów, na który składałoby się dodawanie, usuwanie i edycja newsów, system tagów(przyporządkowanie odpowiednich tagów do newsa na podstawie jego id, relacja wiele do wielu), i kategorii(podobna sprawa, tylko że relacja jeden do wielu), paginacja oraz komentarze. Oczywiście do tego dochodzi wyświetlenie newsów, komentarzy i odpowiednich kategorii i tagów na stronie.

Pisanie oddzielnej klasy do wszystkiego, moim zdaniem mija się z celem(trudne w użyciu?), zaś walnięcie wszystkiego do jednej klasy jeszcze gorsze. Jak to rozplanować. Tym razem pytam zanim zacząłem pisać jakikolwiek kod (IMG:style_emoticons/default/smile.gif) Myślę, że paginację można wrzucić do klasy odpowiedzialnej za newsy, ale co z resztą?
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Tych klas powinieneś mieć dokładnie tyle ile będziesz miał różnych "bytów". A tutaj jest ich co najmniej kilkanaście. I dlaczego niby wiele klas miałoby być trudne w użyciu?
Go to the top of the page
+Quote Post
symonides
post
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 12.11.2010

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


Czyli sądzisz, że jednak lepiej byłoby trzymać to w oddzielnych klasach. Czemu trudniej? Być może wynika to z mojej niewiedzy... bo popatrzmy, newsy byłyby pobierane "w klasie" News, a paginacja byłaby w oddzielnej klasie. Jak to połączyć? Chodzi o to żeby nie pobierać wszystkich newsów, tylko te które mają być wyświetlone. Klasa odpowiedzialna za paginację miałaby obliczyć na podstawie ilości newsów(zawrócone przez klasę News) i adresu(numer strony), które newsy pobrać(klauzula LIMIT) oraz liczbę stron i wygenerować odpowiedni panel do przechodzenia między tymi stronami. Co miałaby zwrócić klasa odpowiadająca za paginację(oprócz tego "panelu")? Liczbę newsów do pobrania i oczywiście numer newsa od którego zacząć pobieranie, a później te dane przekazać do klasy News, żeby pobrała odpowiednie rekordy?

Mam na, że nie zadałem zbyt dużo pytań. Chciałbym zrobić to jak najlepiej.
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Trudniej teraz.. ale łatwiej później (IMG:style_emoticons/default/smile.gif) załóżmy, że stworzyłeś system newsów w dwóch klasach [główna News i Paginacja] i nagle zapragnąłeś mieć moduł dodający komentarze do każdego newsa. Zastanów się teraz ile kodu musisz przerobić, żeby dodać jeden tylko moduł.. do tego dochodzi coś co się zwie błędami programisty - inaczej dobrą aplikację, możesz zbugować.

Sam ostatnio doświadczyłem czegoś takiego - idąc na łatwiznę przy pisaniu modułu wyświetlającego statystyki[upchnąłem wszystko w trzy klasy] tak naprawdę narobiłem sobie tony dodatkowej roboty.

Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Jak to połączyć?
Zapewne jakimś interfejsem który jest znany obiektowi paginacji i implementowany przez wszystkie obiekty od pobierania danych.
Go to the top of the page
+Quote Post
luck
post
Post #6





Grupa: Zarejestrowani
Postów: 317
Pomógł: 58
Dołączył: 6.11.2005

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


Cytat(symonides @ 15.11.2010, 01:24:39 ) *
Co miałaby zwrócić klasa odpowiadająca za paginację(oprócz tego "panelu")? Liczbę newsów do pobrania i oczywiście numer newsa od którego zacząć pobieranie, a później te dane przekazać do klasy News, żeby pobrała odpowiednie rekordy?
Możesz przekazać z pagera do klasy News np. gotowe zapytanie, które ma zostać wywołane do pobrania porcji wyników. Nie widzę też nic złego w tym, aby pager sam pobrał odpowiednie dane z bazy i w postaci obiektu lub nawet prostej tablicy przekazał je do klasy News w celu ew. obróbki i wyświetlenia.
Go to the top of the page
+Quote Post

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: 20.12.2025 - 18:22