![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Witam,
chciałbym poznać waszą opinię na temat superklas. Ponieważ ostatnio babrałem się w IPB zauważyłem, że wykorzystuje on taką klasę gdzie można było znaleźć praktycznie wszystko. Stąd moje pytanie [czysto retoryczne]- czy warto pakować się w superklasy? ps. dla jasności dodam, że chciałbym wykorzystać takową klasę przy tworzeniu panelu admina [coś na wzór grida] Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 9.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi Ci dokładnie o superklasę do wszystkiego czy superklasę mającą wszystko ? Widziałem podejście gdzie jedna wielka klasa obsługiwała bazę danych, użytkownika, newsy itp...
Autorowi grzecznie napisałem że to co robi to programowanie funkcyjne czy jak to tam nazwać. Wystarczyło usunąć sprzed nazw metod nazwy obiektów ($obj->metoda() zamienic na metoda()), potem z klasy wywalić class ... { i public, private itp i masz... zestaw funkcji. Więc jak widzisz, podejście głupie, bezsensowne i nie mające nic wspólnego z OOP. Co innego klasa mająca wszystko. W rozbudowanym systemie na ogół mamy tzw rdzeń i całą resztę która go otacza. Poszczególne możliwości są rozbite na moduły. Ale... obsługa sesji, uwierzytelnianie, obsługa bazy danych, obsługa formularzy i inne standardowe akcje systemu są wykorzystywane przez moduły i ogólnie przez wszystko co ten rdzeń otacza. Więc wygodnym sposobem jest zrobić klasę takiego rdzenia systemu gdzie masz dostęp do jego mechanizmów. Tylko że taki rdzeń nie jest klasą od wszystkiego tylko zbiorem klas wykonujących różne rzeczy w tym systemie. Jak określić co powinno się znaleźć w takim "rdzeniu" ? Nic prostszego. Zbierz wszystkie elementy systemu które są stałe i które nie będą wymagać modyfikacji dla poszczególnych modułów dla przykładu. Są to najczęściej takie mechanizmy jak obsługa sesji, bazy danych itp. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 03:03 |