![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 29.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam prośbę o nakierowanie mnie na temat pierwszej zasady SOILID, jak można zastosować tą zasadę dla tych klas i takiego wywołania, w pierwszej klasie odwołuję się do drugiej, jednak znając życie będzie taka sytuacja że będę musiał przekazać więcej parametrów a nie tylko ID książki i będę musiał modyfikować 2 klasy.
Ten post edytował Nortonek 23.02.2014, 13:45:38 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Na sam początek: nie próbuj samemu robić mapowania bazy danych na model obiektowy (ORM). Jest to wbrew pozorom dosyć skomplikowane zadanie i bez odpowiedniej wiedzy ciężko Ci będzie zrobić cokolwiek co będzie miało jakieś zalety w porównaniu do "zwykłego klepania zapytań". Skorzystaj z Doctrine'a, w większości miejsc jest on całkiem dobrym przykładem zasad SOLID.
Co do Twojego kodu: 1. Powinieneś przekazywać obiekty jako argumenty, a nie ich wewnętrzne właściwości. 2. Jeżeli klasa ma za zadanie reprezentować pojedynczy obiekt (np. książkę) powinna nazywać się Książka, nie Książki. 3. Jedna klasa nie powinna zajmować się reprezentacją pojedynczej książki jak i operacjami bezpośrednio na bazie. Na dobrą sprawę powinieneś mieć tutaj kilka obiektów: - Książka reprezentujący pojedynczą książkę, - MenadżerKsiążek, którego metoda oddajZniszczonąKsiążkę przyjmie jako argument obiekt klasy Książka. Pojawienie się w nazwie klasy słowa "Menadżer" z reguły sugeruje jej zbyt szeroki zakres obowiązków, ale tutaj mamy tylko przykład, - KsiążkaDAO - po prostu DAO dla typu Książka (czy jakiś bardziej generyczny), wykorzystywany przez menadżera. 4. Nie powinieneś korzystać z globali. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 08:45 |