![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Wiecie co, jak wejdą te Traitsy w php a to już nie długo, to jak najszybciej będę chciał się przebranżowić z php na inny język, najbliżej mi do c++ albo javy.
Straszne rzeczy się będą działy w php... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@cojak: W jaki niby sposób Traitsy miałby niszczyć polimorfizm czy inne cechy kodu? Przecież to nic innego jak rozbicie kodu klasy na kilka plików / bloków. Ostatecznie o ile dobrze się orientuję obiekt utworzony na podstawie klasy korzystającej z traitstów będzie zachowywał się dokładnie tak samo jak ten utworzony na podstawie klasy gdzie zamiast use Abc będzie przekopiowany kod traitsa(u?) Abc. No może w Reflection API pojawi się kilka nowych metod pozwalających taką zmianę wychwycić.
Nie mniej jednak sam mocno wątpię w to, by ten bajer cokolwiek zmienił. Po prostu w normalnym kodzie, zbyt rzadko zdarza się by w różnych klasach powtarzał się dokładnie ten sam fragment implementacji czegoś. Co więcej, gdy już taki fragment się znajdzie trzeba się będzie mocno zastanowić czy jego wydzielenie ma po prostu sens. W końcu w miarę normalny kod "wykorzystuje" zasadę DRY, a traits'y potrzebują takich potworków by mieć w ogóle co zastępować. @wookieb: Gdyby traitsy wybierało się w momencie tworzenia obiektu to by była dopiero tragedia. Koniec, końców PHP stara się implementować klasyczny, oparty na klasach, statyczny model obiektowy. Cała reszta języka jest do takiego modelu przystosowana oraz programiści są do takiego modelu przyzwyczajeni (chociaż w sumie patrząc po ilości __get'ów i __set'ów tutaj na forum mam co do tego spore wątpliwości). W Scali, którą się chyba inspirowałeś pisząc to, też nie wygląda to tak z tego co się orientuję. Ten post edytował Crozin 25.10.2011, 17:24:49 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 15:28 |