![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 21 Dołączył: 28.11.2010 Ostrzeżenie: (10%) ![]() ![]() |
piszę sobie coś obiektowo i mój index wygląda mniej więcej tak:
i teraz pytanie - dobrze to jest napisane? chodzi mi o samą logikę aplikacji... klasa silnik.php wygląda tak:
w dobrym ide kierunku? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 1 Dołączył: 11.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jak dla mnie trochę popsuta hermetyzacja.
Metody doContent() i protect() klasy API odpowiadają dość różnym zadaniom. Nie powinno się projektować klasy, która robi zbyt wiele rzeczy na raz. Generalnie 1 rzecz = 1 klasa. Zbyt obszerna klasa przestaje mieć coś wspólnego z obiektówką, a staje się bardziej "modułem", tzn. czymś w rodzaju "przestrzeni nazw" dla strukturalnego zbioru funkcji. Czemu to złe? Chcesz np. coś zmienić w protect(). Być może protect() działa w prozumieniu z jakimś polem prywatnym, powiedzmy $prot. Ale czy $prot nie jest używana gdzieś w doContent()? Tego już nie jesteś pewien. Aby zmodyfikować jedną funkcjonalność muisz analizować kod, który nie ma z nią związku. Nie temu służy idea programzowania obiektowego. Te Twoje API robi za kontroler, walidator (unieszkodlwiajacy niebezpieczne stringi - ale na co: HTML, SQL?) i za model, np. zarządza użytkownikami tak:
A przecież gdy myślimy obiektowo, to aż się prosi by użytkownikowi odpowiadała osobna klasa. W złym. Od tego jest framework - czyli Symfony czy też Zend (wiem, wiem są jeszcze inne równie dobrze, ale nie o to tutaj chodzi). Po co chcesz wynajdować koło od nowa? Kolega pisał: "dobrze to jest napisane? chodzi mi o samą logikę aplikacji...". Przecież coś nie może być napisane źle i nielogicznie tylko dlatego, że nie używa framewroka. Co innego, gdy rozważymy cel tego pisania. Mały, duży system. Nauka, praca, hobby? Dojdzie ktoś do zespołu itd. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 13:52 |