Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
OOP: obiect care face mai multe lucruri
Last Updated: Sep 25 2014 14:01, Started by
Ruben56
, Aug 30 2014 21:34
·
0
#1
Posted 30 August 2014 - 21:34
In ultimul timp am tot invatat OOP(nu sunt avansat in asa ceva, inca invat) si am facut diferite aplicatii... am capatat ceva experienta la cum es foloseste si cum trebuie sa gandesc, etc. dar am o intrebare.
Sunt eu la inceput sau si la voi cateodata intr-un site care vreti sa il facetii orientat pe obiect nu va iese chiar totul "orientat pe obiect". Eu stiu.... ati vrut un obiect care sa faca x dar din anumite motive z mai face si y. Stiu ca asa ceva nu are voie sa se intample dar cum am zis.. "din anumite motive z". // Daca am postat unde nu trebuie rog un drag moderator sa mute topicul exact la locul lui. Am postat aici deoarece e treaba de OOP. Edited by Ruben56, 30 August 2014 - 21:37. |
#2
Posted 30 August 2014 - 21:51
Intr-un proiect curat implementat in OOP, totul e in cate un obiect, in afara de index.php care seteaza mediul (bootstrapping).
Da, un obiect se ocupa doar cu el insusi, o metoda face doar un singur lucru, etc: single responsability principle (SRP). Posteaza cod concret daca vrei sfaturi concrete. http://butunclebob.c...PrinciplesOfOod |
#3
Posted 30 August 2014 - 21:52
Am vrut pentru un site de-al meu sa fac o aplicatie care sa afiseze anumite lucruri si daca apesi pe butonul detalii sa te redirectioneze pe detali.php?id=x si sa creez un obiect detalii care sa preia detalii din baza de date unde id-ul e x.
Dar am constat ca daca adaug doar o metoda sau 2 in clasa afisare am ajuns la acelasi lucru fara sa mai scriu o clasa intreaga cu aceleasi proprietati duap sa initializez un obiect, etc.. Doar adaugam o metoda acolo si am rezolvat treaba (obiectul exista deja, etc) Stiu ca nu e corect ce am facut dar intelegeti voi ce vreau sa fac eu defapt. |
#4
Posted 30 August 2014 - 21:54
Posteaza cod concret daca vrei sfaturi concrete.
Altfel ne pierdem vremea degeaba. Pune-l pe github daca e mai mult de 500 de LOCs. |
#5
Posted 30 August 2014 - 22:04
Nu sunt la PC
Pe scurt: Este acceptat ca un obiect sa faca mai multe lucruri ? In teorie nu dar in practica ? |
#6
Posted 30 August 2014 - 22:07
Suni de ca si cum nu ai sti cum sa construiesti o aplicatie OOP, nu referitor la structura claselor in sine, ci la modus operandi.
O cale usoara pentru inceput este asa: Inainte de a scrie cod, scrii un text in care descrii ce trebuie sa faca. CE, nu cum. Apoi extragi din acel text substantivele importante, actorii, si pentru fiecare actor ai cate o clasa. Apoi extragi din acel text verbele, actiunile importante, si daca sunt multe (peste 20-30), poti alege o strategie de dezvoltare test-driven. In acel text descrii logistica aplicatiei, domeniul aplicatiei, nu elemente grafice, nu click-uri, ci ceea ce face aplicatia ta unica. |
#7
Posted 30 August 2014 - 22:17
Sunt convins de ceva. Daca as da la 2 programatori sa faca in oo acelasi lucru s-ar certa intre ei )
Gluma gluma dar sa revin Deci daca am clasa si obiectul "Afiseaza" care teoretic trebuie sa afiseze date nu conteaza ca afiseaza detalii sau afiseaza y. Ea e destinata sa afiseze ceva. Cum ai zis... Ce trebuie sa afiseze ci nu cum Edited by Ruben56, 30 August 2014 - 22:21. |
#8
Posted 30 August 2014 - 22:26
"Afiseaza" nu este un substantiv.
Tu scrie aici textul cu CE face aplicatia. |
#9
Posted 30 August 2014 - 22:29
Inca o intrebare daca se poate. Sunt incepator in oop si e si seara, obosit oarecum si poate vorbesc prostii.
So.. Daca in clasa Afiseaza am diferite metode care afiseaza diferite lucruri pot pasa metodei dorite un parametru ? Daca as crea o metoda setter pt fiecare metoda ajung la kilometru de cod, glumesc. Deocamdata am o singura metoda setter dar daca am nevoie de un parametru si modific setter apare bug in n locuri in site. Ce fac in acest caz ? |
#10
Posted 30 August 2014 - 22:31
Ruben56, on 30 august 2014 - 22:29, said:
Inca o intrebare daca se poate. Sunt incepator in oop si e si seara, obosit oarecum si poate vorbesc prostii. So.. Daca in clasa Afiseaza am diferite metode care afiseaza diferite lucruri pot pasa metodei dorite un parametru ? Daca as crea o metoda setter pt fiecare metoda ajung la kilometru de cod, glumesc. Deocamdata am o singura metoda setter dar daca am nevoie de un parametru si modific setter apare bug in n locuri in site. Ce fac in acest caz ? Stergi clasa Afiseaza deoarece e o porcarie. |
|
#11
Posted 30 August 2014 - 22:31
#12
Posted 30 August 2014 - 22:41
Afișează nu ar trebuie să fie o metodă a unei clasei? De ce faci o clasă afișează?
|
#13
Posted 30 August 2014 - 22:53
Probabil el a vrut sa faca niste obiecte care sa faca ceea ce fac cin si cout, dar acestea sunt stream-uri.
Eu propun ca urmatoarea aplicatie sa fie un automat de limonada. Automatul de limonada stoarce o lamaie si pune zahar intr-un pahar daca primeste o bacnota de un leu. Edited by Balescu_Ovidiu, 30 August 2014 - 22:56. |
#14
Posted 30 August 2014 - 23:00
Balescu_Ovidiu, on 30 august 2014 - 22:53, said:
Probabil el a vrut sa faca niste obiecte care sa faca ceea ce fac cin si cout, dar acestea sunt stream-uri. Eu propun ca urmatoarea aplicatie sa fie un automat de limonada. Automatul de limonada stoarce o lamaie si pune zahar intr-un pahar daca primeste o bacnota de un leu. vei avea urmatoarele obiecte: Obiectul automat Obiectul automatLimonada care extinde automat Obiectul pahar care este returnat de automat si care in interiorul lui contine alt obiect drinkable (care va fi o interfata). Obiectul limonada ce va implementa Drinkable Obiectul zahar care va implementa interfata Ingredients. Obiectul bancnota care va fi pasat ca parametru la obiectul automat. Edited by puya4ever, 30 August 2014 - 23:02. |
#15
Posted 30 August 2014 - 23:10
Eu zic altfel:
Obiectul automat de limonada care face limonada. -Parametrul zahar care scade cu 1 odata cu o limonada facuta. -Parametrul limonada care scade cu 1 odata cu o limonada facuta. -Parametrul bani care creste cu 1 odata ce sa facut o limonada. -Sa nu uitam ca automatul trebuie alimentat din cand in cand. Edited by Balescu_Ovidiu, 30 August 2014 - 23:19. |
|
#16
Posted 30 August 2014 - 23:14
Balescu_Ovidiu, on 30 august 2014 - 23:10, said:
Eu zic altfel: Obiectul automat de limonada care face limonada. -Parametrul zahar care scade cu 1 odata cu o limonada facuta. -Parametrul limonada care scade cu 1 odata cu o limonada facuta. -Parametrul bani care creste cu 1 odata ce sa facut o limonada. zahar, limonada, bani nu sunt parametrii - ele vor fi obiecte. Aici discutam strict de designul obiectelor, nu de functionalitate. Poate in aplicatia mea va scade cu 5, nu cu 1, pentru ca asa am eu chef. Mai trebuie sa citesti |
#17
Posted 30 August 2014 - 23:32
Sau mai bine combinati ideile voastre:
Zahar, Limonada si Ban sunt value objects si accepta cate un numar cu cantitatea ca parametru in constructor. Iar obiectele astfel construite sunt pasate ca parametri automatului. Nu vad de ce vedeti divergente in ceea ce ati spus, in loc sa le combinati. |
#18
Posted 30 August 2014 - 23:35
Ai dreptate OriginalCopy, daca e sa luam prima idee ar fi prea multe obiecte, si daca e sa luam a doua idee codul nu extensibil.
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users