Programiranje je proces razvoja rešitev za "žive", dinamične naloge v obliki toge strukture kode, podatkov, funkcij in algoritmov. Postopek oblikovanja stroge sintakse z negotovo semantiko. Resnična naloga je dobro znani problem v smislu algoritemizacije: za doseganje želene rešitve je treba nalogo postaviti v natančne sintaktične konstrukcije.
Raven in kvalifikacija
Objektivno in dejstvo, da nosilec projekta ne vztraja, stranka pa ne potrebuje prave rešitve resničnih težav. Obe strani sta navajeni, da se omejujeta na razpoložljiva orodja in navade. Oblike polimorfizma OOP-a, zamisel o enkapsulaciji kode in dedovanje lastnosti (metod) ležijo na področju programiranja, ne pa tudi na področju problema, ki ga je treba rešiti. Prikazni primer je knjižnica PHPOffice /PHPWord. Če ga želite uporabiti kvalifikacijo razvijalca, morate ustvariti svoj sistem objektov, vendar sedanji ravni kupca (zahteve kupcev) - trivialna sestava, ki se programer prekriva z njegovim razvojem (sicer ne izpolnjujejo zahtev). Stanje, kot je ta:
Popolna analiza dokumenta, njegova zbirka v pravem formatu, delo s tabelami katere koli stopnje gnezdenja, združevanja in ločevanja celic, tiskanje v katero koli smer itd.
Polimorfizem in OOP Boljša definicija za polimorfizem ni razmišljanje o tem, kako se zanašati na zgodovino razvoja ideje objektno usmerjenega programiranja, ki je tako priljubljena danes, tako pogosto uporabljena, ampak v svojem bistvu neizvedena do danes. Vsak avtor ima svoj koncept začetka in narave OOP-a. Za vsakega pozornega bralca je ta koncept zanesljiv in objektiven. Vse do danes pa kot brezpogojni aksiom sprejemamo le tri položaje:
Popularne definicije polimorfizma
Bistvo: razvijalec - stranka
Okna, gumbi in drugi predmeti
Verjetno je to edini pravilen način za razvoj OOP-a: inkapsulacija, dedovanje, polimorfizem za razvijalca, ne pa tudi za uporabnika. Značilno je, da je bil ta položaj osrednjega pomena pri oblikovanju vizualnega oblikovanja (vmesnika) programskih aplikacij Windows, kot sta Turbo Vision in Graph Vision.
Objekt in sistem objektov: algoritem
Objekt in sistem objektov: naloge in rešitve
Tradicionalno in objektno programiranje
Vendar pa so tudi na poti: klasično programiranje ni slabše od njihovih položajev, veliko objektno usmerjenih idej pa se izvaja s klasično kodo. Vendar pa so ideje OOP-a in rekurzije vodile k ustreznemu vplivu na sintakso klasičnih sintaktičnih operaterjev, na logiko konstruiranja pravilne kode, ki nima nič skupnega s objektno usmerjenim slogom pisanja in razmišljanja. Seznami in čakalne vrste so se spremenili, pojavil se je koncept prvega in zadnjega elementa polja, pojavili so se cikli "za vsakega" in zgledne različice poimenovanja, uporabe in izvrševanja so postale še bolj priljubljene kot prej. Pravzaprav je dejstvo, da so spremenljivke izgubile svojo "jasno" osebo (tip spremenljivke se lahko spreminja, kot je potrebno, vendar opis spremenljivke sploh ni potreben), pravi, da je klasika že dolgo objektno usmerjena in priznava osnovna načela PLO: enkapsulacija , dedovanje, polimorfizem kot ideje, ki imajo pomemben pomen.
Odvzem, kot glavni konceptualni položaj PLO, ne glede na to, kje se nahaja območje odgovornosti (izvajanje)predmet - na ravni prvega abstraktnega predmeta ali na ravni določenega potomca - pušča odprto vprašanje: kje začeti, iz predmeta ali sistema?
Če je temelj dati predmet, potem ne bo nikoli postal sistem, ker bo sistem v njem, in postal bo togo popolnoma konkreten začetek. Tukaj, z abstrakcijo, obstajajo problemi: prvotni objekt natančno zajema glavni problem v rešitvi, torej ni več prenosljiv na drugo nalogo. Če je osnova za postavitev sistema objektov, potem sistem sistemov. Težko si je predstavljati v povezavi z določeno nalogo in od katere začeti razvoj - prav tako je težko razumeti. Na splošno, polimorfizem OOP-a s svojimi razlikami v bistvu, obliko implementacije, številom dejanskih parametrov v funkcijah daje idejo o sistemu, ki je na začetku, kot:o možnostih reševanja problemov (npr. Meni); o začetnih pogojih (uporaba naloge v različnih pogojih, podatki); o načinih delovanja (preskušanje, konfiguracija, delo). Toda to in podobno mu ne daje nobenega razloga, da bi postavil osnovo za reševanje problema sistema objektov. Pogosto je dovolj, da definiramo en sam predmet.
Najpomembnejša načela PLO: polimorfizem in abstrakcija - določata prednostni objekt kot sistem objektov. V sporu, ki bi moral biti prej, piščanca ali jajce, zmaga tukaj postane kadilec. Nobenega dvoma ni, da bi se vse moralo začeti z abstraktnim predmetom, ne pa s sistemom objektov. Todače upoštevamo faktor časa in ga uporabimo na ravni vsakega predmeta, začenši s prvim abstraktom, je protislovna misel postaviti rešitev in predmet na začetku, sistem pa je edini inteligenten. Če klasični koncept programiranja med reševanjem problema spremeni podatke, vsebina baze podatkov, spremembe datotek itd., Koncept polimorfizma PLO, enkapsulacija in časovni faktor spremenijo vsebino, strukturo in lastnosti objektnih objektov, ki jih je treba rešiti. Programer v OOP-ju se najmanj zanima za koncept datoteke, baze podatkov, algoritem - to je še posebej, tukaj programer misli predmete, vendar objekti obstajajo v času in spremembe v smeri doseganja želene.
Podlaga: predmet ali sistem
Zgodovina procesa reševanja problema
Tako se na začetku objekt nahaja kot sistem objektov in logika tega sistema - časovna premica: začetek naloge, oblikovanje prvega objekta, vnos ali zbiranje podatkov, oblikovanje naslednjega objekta, vendar nič ne preprečuje prvega. nadaljevati z naslednjo odločitvijo. Vsaka raven objektov deluje kot samostojen sistem objektov, to je, da je en objekt, v kontekstu sproženega procesa in časovne vrednosti pa je sistem objektov na časovni lestvici. Za popolno izvajanje PLO, polimorfizem, dedovanje in časovni faktor v agregatu zagotavljajo dinamiko prvega, to je, da se objekt ne more le spreminjati skozi čas, temveč tudi ustvarjati objekte, ki jih ni razvil razvijalec, ki jih ustvari izvedba naloge v procesu, ki jo je zasnoval naročnik.
Zapletenost nalog, ki so močni OOP, ni primerljiva s tisto, ki je na voljo klasičnemu črkovanjuprogramov. Seveda je reševanje vsakega problema vedno na voljo na običajen način, toda vprašanje, koliko bo to stalo časa in truda, pogosto naredi rezultat neuporaben. Pred kratkim je bila razvita knjižnica PHPOffice /PHPWord, vendar je za uporabo svojih zmogljivosti skoraj vedno potrebno ustvariti lasten sistem objektov. Na primer, preprosta datoteka * .docx:
je zip arhiv mnogih Office Open XML datotek in map (OpenXML, OOXML). Vsaka datoteka je napisana v oznakah XML in pri dodajanju, spreminjanju in brisanju črk, besed, tabel, seznamov in še več. Elementi vsebine datotek se začnejo predstavljati zaporedje oznak, ki ne vsebujejo vedno polnih elementov, pogosto je en element napisan z nizom oznak. Če datoteko pošljete kot zaporedje oznak, se prikaže zanimiva slika:
Ni težko videti, da je prvi in edini odstavek dokumenta predstavljen z množico oznak. Kar se tiče tabele in tabele, ki je v njej vgrajena, potem obseg opisa vseh elementov ni dovzeten za zaznavo, temveč je dostopen z objektno orientirano aplikacijo. Dejansko je slika zelena - to je testna oznaka, rumena - parametri in vrsta oznake, bež - vsebina. Ustvarjeni objekti so osredotočeni na obdelavo. Osebi so dostopne samo operacije odpiranja dokumentne datoteke, njenega oblikovanja in snemanja. Rešitev je preprosta in praktična, vendar je izvajanje bolj osredotočeno na računalnik kot na osebo, razlogi za velikost izvedljive funkcionalne in kompleksne povezave med objekti.
Razvoj sistemov upravljanja območij, tehnologijkonfiguracijo in upravljanje strežnikov, izkušnje pri razvoju dinamičnih spletnih mest, ki so omogočili dostop do objektno usmerjenega programiranja vsem. Problem je v tem, kako spremeniti svoje razmišljanje in se navaditi na razmišljanje na ravni objekta in ne v kontekstu dosledno izvršljive kode. Običajno prehod od klasičnega programiranja na objektno usmerjen traja dva do tri mesece, vendar se stroški preveč povrnejo. Potencial sodobnih programskih jezikov, predvsem PHP in javascript, bo zadovoljil najzahtevnejšega razvijalca. Sodobni OOP - polimorfizem, dedovanje in sposobnost oblikovanja lastnosti objektov - priročna in praktična jezikovna sintaksa in pomožna orodja zagotavljajo udobje pri delu in učinkovitost kod.
Kako dolgo bo klasično programiranje in kako bo razvilo PLO - težko je reči. Očitno razvijalci orodij ne načrtujejo upoštevanja konteksta potrošnika (uporabnika, kupca). Priročnik OOP - polimorfizem, imitacija, enkapsulacija in abstrakcija - so usmerjeni k razvijalcem. Sodobni informacijski sistemi in spletni viri si prizadevajo odražati resnično realnost, zagotavljajo delovanje realnih objektov in ustvarjajo okolje za njihovo delovanje, tako preprosto, da bo potrošniku dostopno daleč od programiranja, popolnoma potopljeno v njegovo področje pristojnosti.