Article View: pl.comp.lang.python
Article #26761Re: python vs php - potrzebne argumenty
From: pakalk
Date: Sat, 31 Oct 2009 21:44
Date: Sat, 31 Oct 2009 21:44
128 lines
5915 bytes
5915 bytes
On Oct 31, 10:17 pm, Marek Wywiał <onj...@gmail.com> wrote:
> On 31 Paź, 20:54, pakalk <pak...@gmail.com> wrote:
>
> > > To, że nie można polegać na systemie
> > > wyjątków w PHP - to drugie.
>
> > Czemu nie mozna?
>
> try {
> jakis kod;} catch(NieMatakiejKlasy $e) {
>
> print "chcialbym tu dotrzec";
>
> }
>
> póki kod przed w try jest ok, to ok
> gdy dotrze do niestniejącejklasy wyjątku (literówka)
> skończy się fatalem zamiast obsługą
>
To co to ma wspolnego ze zlym systemem wyjatkow?
>
> Metoda statyczna, jest to metodą nie używająca właściwości obiektu w
> którym się znajduje,
Metody statyczne nie sa wlasnoscia obiektow, tylko klas.
> tylko np dodająca 2 wartości przekazane jako argumenty. A do tego
> służą funkcje odpowiednim
> namespace/pakiecie.
Albo w odpowiedniej klasie, ktroa w ten sposob agreguje funkcje.
> To nie jest standard OOP tylko proteza na
> upychanie funkcji w namespace klasy
> w Javie.
Powiedz to autorom UML, bo chyba o tym nie slyszeli, skoro zawarli to
w standardzie.
>
> W pythonie wystarczy umieścić funkcję w pakiecie, nie potrzeba do tego
> wymyślać klasy, w której
> chciałbym mieć tą funkcję.
To po co w pythonie sa metody klasowe i statyczne (inaczej dzialajace
niz w innych jezykach, bo nie w kontekscie klasy)?
>
> Jak już zostało wspomniane moim zdaniem portowanie do języka
> dynamicznego jakim jest PHP wzorców i konstrukcji
> z języka statycznego jest przerostem formy nad treścią, gdyż wiele
> rozwiązań w javie jest stworzonych po to
> by obchodzić jego statyczność i pozwolić wykonać to co w językach
> dynamicznych można na dzień dobry.
>
Twoim zdaniem. A moim zdaniem jest inaczej.
>
>
> > > interfejsów
>
> > Interfejsy sa nieobiektowymi konstrukcjami?
>
> Interfejsy nie są OOP. W przypadku niektórych implementacji używa się
> ich do oznaczania oraz wymuszania spójności interfejsów klas.
>
Ok, musisz to powiedziec autorom UML. Znow. Chociaz po co - oni sie na
obiektowce w ogole nie znaja.
>
> Protected i private też nie należą do OOP tylko do konkretnej
> implementacji OOP.
Ech.. gadasz bez sensu. Enkapsulacja to podstawa programowania
obiektowego.
> Nie służą one do wymuszania ale do informowania o przeznaczeniu
> konkretnej właściwości.
Owszem, sluza do wymuszania uzywania/nieuzywania danych czlonkow klasy
w dany sposob. Nie wiem, czy Ty w ogole zdajesz sobie sprawe o czym
mowisz. Informowac to sobie mozesz w komentarzach.
>
> Problem się zaczyna przy dużym projekcie, wielu klasach dziedziczących
> (płasko, nie głębokie drzewa),
> gdy okazuje się, że protected z klasy bazowej sprawia spory problem
> przy rozwijaniu projektu.
Zly model obiektowy - co z tego? Protected generalnie nie jest uzywane
poza miejscami, gdy klasy pochodne maja "skonfigurowac" dzialanie
klasy, ktorej generalny mechanizm zawarto w bazowej. Wtedy sie
sprawdzaja. W Pythonie (w dokumentacji chocby) widzialem metody
publiczne, ktore sa przeznaczone do nadpisania w klasach pochodnych.
One wlasnie powinny miec ustawiony modyfikator protected.
>
> Tworzy się wtedy obejście na niepotrzebne blokowanie przy pomocy klas
> friendly.
Nie wiem skad Ci sie wziely teraz klasy zaprzyjaznione.
>
> W pytonie wystarczy oznaczyć element jako protected '_' czy private
> '__' i każdy normalny programista
> zrozumie jego znaczenie, czyli nie używaj, a jak musisz to w klasach
> ściśle powiązanych i musisz być przygotowany
> na zmiany jeżeli nie ty rozwijasz pakiet z daną właściwością. Czyli
> masz to samo co w Java, tylko bez zbędnego pisania
> i bez problemów przy złożonych systemach.
Z glupimi nazwami.
>
> Hermetyzacja nie oznacza blokowania klasy przed idiotami, tylko jasne
> oznaczenie przeznaczenia klas i ich elementów.
Owszem.
> W php czy w java oznaczenie jako private nie oznacza, że nie uda się
> dostać do danej właściwości, bo można choć nie wprost (identycznie jak
> w pythonie).
Ok, ale co z tego?
Technical Details
Message-ID:
<dc9968ac-053b-41b3-83c2-113fa9c3a9df@37g2000yqm.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!xlned.com!feeder1.xlned.com!feeder2.cambriumusenet.nl!feed.tweaknews.nl!postnews.google.com!37g2000yqm.googlegroups.com!not-for-mailReferences:
<h83in7$rl3$1@inews.gazeta.pl> <b9dc7116-39db-474f-9282-8862b3f1cad2@d5g2000yqm.googlegroups.com> <a501db87-9ccf-4694-a8f8-330a67cdc839@15g2000yqy.googlegroups.com> <7aa62383-88c2-4138-89d6-594112504075@g27g2000yqn.googlegroups.com> <op.u2nhqrhyeaqjf2@macbook-pro-15-zbiru.local> <97ad13b9-95bf-4c61-8a1b-59c7c57e8499@s31g2000yqs.googlegroups.com> <op.u2oi93ceeaqjf2@macbook-pro-15-zbiru.local> <12b7fbaa-206c-4b39-8868-4e3b96eea704@37g2000yqm.googlegroups.com> <43f4c68c-2cfa-4444-b8e7-f520d337cfcb@m16g2000yqc.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!xlned.com!feeder1.xlned.com!feeder2.cambriumusenet.nl!feed.tweaknews.nl!postnews.google.com!37g2000yqm.googlegroups.com!not-for-mail From: pakalk <pakalk@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: python vs php - potrzebne argumenty Date: Sat, 31 Oct 2009 14:44:43 -0700 (PDT) Organization: http://groups.google.com Lines: 136 Message-ID: <dc9968ac-053b-41b3-83c2-113fa9c3a9df@37g2000yqm.googlegroups.com> References: <h83in7$rl3$1@inews.gazeta.pl> <b9dc7116-39db-474f-9282-8862b3f1cad2@d5g2000yqm.googlegroups.com> <a501db87-9ccf-4694-a8f8-330a67cdc839@15g2000yqy.googlegroups.com> <7aa62383-88c2-4138-89d6-594112504075@g27g2000yqn.googlegroups.com> <op.u2nhqrhyeaqjf2@macbook-pro-15-zbiru.local> <97ad13b9-95bf-4c61-8a1b-59c7c57e8499@s31g2000yqs.googlegroups.com> <op.u2oi93ceeaqjf2@macbook-pro-15-zbiru.local> <12b7fbaa-206c-4b39-8868-4e3b96eea704@37g2000yqm.googlegroups.com> <43f4c68c-2cfa-4444-b8e7-f520d337cfcb@m16g2000yqc.googlegroups.com> NNTP-Posting-Host: 83.10.62.184 Mime-Version: 1.0 X-Trace: posting.google.com 1257025485 16198 127.0.0.1 (31 Oct 2009 21:44:45 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sat, 31 Oct 2009 21:44:45 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: 37g2000yqm.googlegroups.com; posting-host=83.10.62.184; posting-account=rLTIYAoAAAAC0UY184o3dcMgnRpikGCw User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit