Pytanie o klasy i inne.
Pytanie o klasy i inne.
Witam od jakiegoś czasu zgłębiam PHP i nie mogę pojąc PO CO istnieją te wszystkie modyfikatory dostępu typu protected, private, no nie rozumie przecież kod PHP nie jest widoczny z poziomy przeglądarki, a jeśli już komuś powierzamy prace nad naszym kodem to po co utrudniać modyfikacje właśnie w taki sposób ( bo przecież nie może wtedy poza klasami z tego korzystać i trzeba robić funkcje która ma to obchodzi a cz nie można po prostu tego nie wpisywać ). W ogóle w przyszłości w kursach bardzo proszę uzasadniaj po co coś jest do czego służy co mogę z tym robić. Jeśli człowiek wie, że coś mu się przyda wtedy to łatwiej jest to sobie przyswoić bo wiem, że ma to sens a nie widzę sensu dla zastosowania tych modyfikacji dostępu, no chyba, że ktoś mi to wyjaśni .PO CO ?;-)
Re: Pytanie o klasy i inne.
Hej Rasty,
Uwierz, że na moment w którym uczyłeś się czym są modyfikatory dostępu pokazanie tego na praktycznym przykładzie w sposób taki byś to zrozumiał bez znajomości innych aspektów obiektowego programowania i napisaniu kilku aplikacji jest praktycznie niemożliwe. Bo sens programowania obiektowego zaczynasz dopiero widzieć, gdy napiszesz sobie aplikacje do której wrócisz za pół roku lub też gdy tą aplikację będzie pisało więcej niż jedna osoba.
Programowanie obiektowe to inny sposób myślenia. To nie jest tylko rozwiązywanie problemów (pisanie algorytmów). Tu chodzi oto, aby wszystko miało ręce i nogi. Oczywiście nikt z zewnątrz nie dostanie się do prywatnej zmiennej, ale Twój kolega, który nie wie jak programować może się do tego dostać w taki właśnie sposób. A intencją enkapsulacji jest to byś pobierał/ustawiał prywatne właściwości przez metody. Metody te mogą sprawdzać czy dany obiekt ma uprawnienia do dostępu do danej właściwości, a metody, które zmieniają taką właściwość mogą sprawdzić czy rzeczywiście taka właściwość może być zmieniona w tym momencie, czy trzeba poczekać na zmianę, bo jak teraz zmienisz to animacja się jakaś przerwie itd. Ale ogólnie głównie chodzi o ideę. Chociażby nawet dlatego, że masz getery i setery do prywatnych zmiennych. To osoba, która nie zna Twojej klasy wie o tym, że może coś pobrać lub ustawić związanego z Twoją klasą właśnie wpisując "get...", a IDE podpowie mu resztę. Nie musi się wtedy zastanawiać się, czy musi coś jeszcze zrobić dodatkowo, bo to klasa się zajmuje swoimi właściwościami. Dodatkowo, gdy zmienisz warunki pobierania lub też ustawiania danych (w prostych programach to nie ma sensu) to zmieniasz to tylko w jednym miejscu.
Możliwe, że to co piszę nic Ci teraz nie mówi. Nie martw się. Większość osób co zaczyna programowanie obiektowe nie rozumie po co komplikować sobie życie i w sumie mają ku temu czasem rację. Jednak ci co nie stosują się do pewnych zasad jak np. programowanie obiektowe ciężko mają gdy chcą współpracować w większym gronie ludzie. Jak każdy by robił po swojemu bez żadnych zasad to jak niby kilku ludzi ma pracować nad jednym kodem?
Pozdrawiam
Uwierz, że na moment w którym uczyłeś się czym są modyfikatory dostępu pokazanie tego na praktycznym przykładzie w sposób taki byś to zrozumiał bez znajomości innych aspektów obiektowego programowania i napisaniu kilku aplikacji jest praktycznie niemożliwe. Bo sens programowania obiektowego zaczynasz dopiero widzieć, gdy napiszesz sobie aplikacje do której wrócisz za pół roku lub też gdy tą aplikację będzie pisało więcej niż jedna osoba.
Programowanie obiektowe to inny sposób myślenia. To nie jest tylko rozwiązywanie problemów (pisanie algorytmów). Tu chodzi oto, aby wszystko miało ręce i nogi. Oczywiście nikt z zewnątrz nie dostanie się do prywatnej zmiennej, ale Twój kolega, który nie wie jak programować może się do tego dostać w taki właśnie sposób. A intencją enkapsulacji jest to byś pobierał/ustawiał prywatne właściwości przez metody. Metody te mogą sprawdzać czy dany obiekt ma uprawnienia do dostępu do danej właściwości, a metody, które zmieniają taką właściwość mogą sprawdzić czy rzeczywiście taka właściwość może być zmieniona w tym momencie, czy trzeba poczekać na zmianę, bo jak teraz zmienisz to animacja się jakaś przerwie itd. Ale ogólnie głównie chodzi o ideę. Chociażby nawet dlatego, że masz getery i setery do prywatnych zmiennych. To osoba, która nie zna Twojej klasy wie o tym, że może coś pobrać lub ustawić związanego z Twoją klasą właśnie wpisując "get...", a IDE podpowie mu resztę. Nie musi się wtedy zastanawiać się, czy musi coś jeszcze zrobić dodatkowo, bo to klasa się zajmuje swoimi właściwościami. Dodatkowo, gdy zmienisz warunki pobierania lub też ustawiania danych (w prostych programach to nie ma sensu) to zmieniasz to tylko w jednym miejscu.
Możliwe, że to co piszę nic Ci teraz nie mówi. Nie martw się. Większość osób co zaczyna programowanie obiektowe nie rozumie po co komplikować sobie życie i w sumie mają ku temu czasem rację. Jednak ci co nie stosują się do pewnych zasad jak np. programowanie obiektowe ciężko mają gdy chcą współpracować w większym gronie ludzie. Jak każdy by robił po swojemu bez żadnych zasad to jak niby kilku ludzi ma pracować nad jednym kodem?
Pozdrawiam

Re: Pytanie o klasy i inne.
Rasty potwierdzam to co pisze administrator
Sam jakiś czas temu nie mogłem zrozumieć sensu używania programowania obiektowego, ale próbowałem, próbowałem, kombinowałem i teraz po jakimś czasie, po kilku stworzonych aplikacjach według mnie programowanie obiektowe (mimo, że nadal jestem świeży w temacie) jest chyba najlepszym dotąd mi znanym paradygmatem programowania - przede wszystkim ze względu na czytelność kodu, łatwą modyfikację czy implementację nowych elementów. Nie wyobrażam sobie teraz powrotu do programowania strukturalnego.
