[PHP] Logowanie, zwrot/wypozyczenie ksiazek OOP - mocno początkujący |
[PHP] Logowanie, zwrot/wypozyczenie ksiazek OOP - mocno początkujący |
14.10.2019, 18:03:39
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 14.10.2019 Skąd: Białystok Ostrzeżenie: (0%) |
Cześć,
Zaczynam naukę OOP i w napisałem skrypt który umożliwia rejestracje/logowanie/zwrot/wypożyczenie książek. Mam świadomość istnienia SOLID oraz PSR - czytałem o PSR 1 / 2 i staram się przestrzegać. Nie znam MVC ani testów np. PHPUnit - to będą kolejne kroki w nauce. Czy taki skrypt można określić obiektowym, czy jest to jakaś hybryda? Zanim pójdę dalej jw chciałbym nauczyć się dobrych nawyków i w prawidłowy sposób posługiwać się OOP. Skrypt nie wszedł na forum, umieściłem na githubie Link do GitHub Moje dodatkowe pytania: 1. Tworzenie obiektu Database w konstruktorze innych klas, czy jest to prawidłowe? 2. Metoda checkCredentials klasy log - czy nie narusza zasady pojedynczej odpowiedzialności? Czy nie powinna np. wyszukiwać użytkownika,a następnie inna metoda powinna weryfikować dane? Dzięki za wszystkie uwagi i poświęcony czas |
|
|
18.10.2019, 10:36:44
Post
#2
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) |
Jeszcze taka ogólna uwaga odnośnie dziedziczenia. Ogólnie dziedziczenie nie służy do "przekazywania" kodu do klas potomnych tak jak to robisz, czyli rozszerzając klasę o klasę Database. Dziedziczenie zazwyczaj to zło, chyba że robisz to świadomi i w przemyślany sposób. W większości przypadków lepsza od dziedziczenia jest kompozycja (wstrzyknięcie obiektu przez konstruktor). Jest to bardziej elastyczne rozwiązanie i nie blokuje rozwoju aplikacji. Dziedziczenie w prawdziwych aplikacjach używane jest dość rzadko - raczej stosuje się interfejsy + kompozycję. Na tak małym kodzie jak teraz piszesz może to być trudne do zrozumienia i wydawać się całkiem dobrym pomysłem, ale serio używaj dziedziczenia jak najrzadziej się da, bo przy większym kodzie to się szybko mści.
|
|
|
Wersja Lo-Fi | Aktualny czas: 25.09.2024 - 07:15 |