Поддерживать
www.wikidata.ru-ru.nina.az
Obe ktno orienti rovannoe programmi rovanie sokr OOP metodologiya ili stil programmirovaniya na osnove opisaniya tipov modelej predmetnoj oblasti i ih vzaimodejstviya predstavlennyh porozhdeniem iz prototipov ili kak ekzemplyary klassov kotorye obrazuyut ierarhiyu nasledovaniya Ideologicheski OOP podhod k programmirovaniyu kak k modelirovaniyu informacionnyh obektov reshayushij na bolee vysokom abstraktnom urovne osnovnuyu zadachu strukturnogo programmirovaniya strukturirovanie informacii s tochki zreniya upravlyaemosti Eto pozvolyaet upravlyat samim processom modelirovaniya i realizovyvat krupnye programmnye proekty Upravlyaemost dlya ierarhicheskih sistem predpolagaet minimizaciyu izbytochnosti dannyh analogichnuyu normalizacii i ih celostnost poetomu sozdannoe udobno upravlyaemym budet i udobno ponimatsya Takim obrazom cherez takticheskuyu zadachu upravlyaemosti reshaetsya strategicheskaya zadacha translirovat ponimanie zadachi programmistom v naibolee udobnuyu dlya dalnejshego ispolzovaniya formu Osnovnye principy strukturirovaniya v sluchae OOP svyazany s razlichnymi aspektami bazovogo ponimaniya predmetnoj zadachi kotoroe trebuetsya dlya optimalnogo upravleniya sootvetstvuyushej modelyu abstrakciya dlya vydeleniya v modeliruemom predmete vazhnogo dlya resheniya konkretnoj zadachi po predmetu v konechnom schyote kontekstnoe ponimanie predmeta formalizuemoe v vide klassa inkapsulyaciya dlya bystroj i bezopasnoj organizacii sobstvenno ierarhicheskoj upravlyaemosti chtoby bylo dostatochno prostoj komandy chto delat bez odnovremennogo utochneniya kak imenno delat tak kak eto uzhe drugoj uroven upravleniya nasledovanie dlya bystroj i bezopasnoj organizacii rodstvennyh ponyatij chtoby bylo dostatochno na kazhdom ierarhicheskom shage uchityvat tolko izmeneniya ne dubliruya vsyo ostalnoe uchtyonnoe na predydushih shagah polimorfizm dlya opredeleniya tochki v kotoroj edinoe upravlenie luchshe rasparallelit ili naoborot sobrat voedino To est fakticheski rech idyot o progressiruyushej organizacii informacii soglasno pervichnym semanticheskim kriteriyam vazhnoe nevazhnoe klyuchevoe podrobnosti roditelskoe dochernee edinoe mnozhestvennoe Progressirovanie v chastnosti na poslednem etape dayot vozmozhnost perehoda na sleduyushij uroven detalizacii chto zamykaet obshij process Obychnyj chelovecheskij yazyk v celom otrazhaet ideologiyu OOP nachinaya s inkapsulyacii predstavleniya o predmete v vide ego imeni i zakanchivaya polimorfizmom ispolzovaniya slova v perenosnom smysle chto v itoge razvivaet vyrazhenie predstavleniya cherez imya predmeta do polnocennogo ponyatiya klassa Osnovnye ponyatiyaAbstrakciya dannyh Abstragirovanie oznachaet vydelenie znachimoj informacii i isklyuchenie iz rassmotreniya neznachimoj V OOP rassmatrivayut lish abstrakciyu dannyh neredko nazyvaya eyo prosto abstrakciej podrazumevaya nabor naibolee znachimyh harakteristik obekta dostupnyh ostalnoj programme Inkapsulyaciya Inkapsulyaciya svojstvo sistemy pozvolyayushee obedinit dannye i metody rabotayushie s nimi v klasse Odni yazyki naprimer C Java ili Ruby otozhdestvlyayut inkapsulyaciyu s sokrytiem no drugie Smalltalk Eiffel OCaml razlichayut eti ponyatiya Nasledovanie Nasledovanie svojstvo sistemy pozvolyayushee opisat novyj klass na osnove uzhe sushestvuyushego s chastichno ili polnostyu zaimstvovannoj funkcionalnostyu Klass ot kotorogo proizvoditsya nasledovanie nazyvaetsya bazovym roditelskim ili superklassom Novyj klass potomkom naslednikom dochernim ili proizvodnym klassom Polimorfizm podtipov Polimorfizm podtipov v OOP nazyvaemyj prosto polimorfizmom svojstvo sistemy pozvolyayushee ispolzovat obekty s odinakovym interfejsom bez informacii o tipe i vnutrennej strukture obekta Drugoj vid polimorfizma parametricheskij v OOP nazyvayut obobshyonnym programmirovaniem Klass Klass universalnyj kompleksnyj tip dannyh sostoyashij iz tematicheski edinogo nabora polej peremennyh bolee elementarnyh tipov i metodov funkcij dlya raboty s etimi polyami to est on yavlyaetsya modelyu informacionnoj sushnosti s vnutrennim i vneshnim interfejsami dlya operirovaniya svoim soderzhimym znacheniyami polej V chastnosti v klassah shiroko ispolzuyutsya specialnye bloki iz odnogo ili chashe dvuh sparennyh metodov otvechayushih za elementarnye operacii s opredelyonnym polem interfejs prisvaivaniya i schityvaniya znacheniya getter setter kotorye imitiruyut neposredstvennyj dostup k polyu Eti bloki nazyvayutsya svojstvami i pochti sovpadayut po konkretnomu imeni so svoim polem naprimer imya polya mozhet nachinatsya so strochnoj a imya svojstva s zaglavnoj bukvy Drugim proyavleniem interfejsnoj prirody klassa yavlyaetsya to chto pri kopirovanii sootvetstvuyushej peremennoj cherez prisvaivanie kopiruetsya tolko interfejs no ne sami dannye to est klass ssylochnyj tip dannyh Peremennaya obekt otnosyashayasya k zadannomu klassom tipu nazyvaetsya ekzemplyarom etogo klassa Pri etom v nekotoryh ispolnyayushih sistemah klass takzhe mozhet predstavlyatsya nekotorym obektom pri vypolnenii programmy posredstvom dinamicheskoj identifikacii tipa dannyh Obychno klassy razrabatyvayut takim obrazom chtoby obespechit otvechayushie prirode obekta i reshaemoj zadache celostnost dannyh obekta a takzhe udobnyj i prostoj interfejs V svoyu ochered celostnost predmetnoj oblasti obektov i ih interfejsov a takzhe udobstvo ih proektirovaniya obespechivaetsya nasledovaniem Obekt Sushnost v adresnom prostranstve vychislitelnoj sistemy poyavlyayushayasya pri sozdanii ekzemplyara klassa naprimer posle zapuska rezultatov kompilyacii i svyazyvaniya ishodnogo koda na vypolnenie Klassifikaciya podvidov OOP angl i Martin Abadi postroili teoreticheskoe obosnovanie OOP i klassifikaciyu na osnove etogo obosnovaniya Oni otmechayut chto vydelennye imi ponyatiya i kategorii vmeste vstrechayutsya daleko ne vo vseh OO yazykah bolshinstvo yazykov podderzhivayut lish podmnozhestva teorii a poroj i svoeobraznye otkloneniya ot neyo Klyuchevye ponyatiya kvantifikaciya peremennyh tipa universalnaya ekzistencialnaya angl angl angl subtyping otnosheniya supertip podtip vklyuchenie angl subsumption sm princip podstanovki Barbary Liskov chastnyj sluchaj podtipizacii sm podtipizaciya na zapisyah obekt obektnyj tip fakticheski specialnaya forma zapisi v chislo polej kotoroj vhodyat funkcii pervogo klassa klass Klass opisyvaet abstraktnoe povedenie Obektnye tipy stroyatsya na osnove klassa posredstvom dobavleniya razlichnyh privatnyh polej i metodov Obekt to est znachenie obektnogo tipa tradicionno nazyvaemoe ekzemplyarom klassa porozhdaetsya konstruktorom na osnove nachalnyh parametrov Tradicionno perechislyaemye osnovnye principy OOP ne apelliruyut k dannomu teoreticheskomu obosnovaniyu a yavlyayutsya ustoyavshimisya v soobshestve dogmami chto privodit k silnomu razbrosu variantov izlozheniya v raznyh istochnikah Po bolshej chasti oni otnosyatsya k yazykam potomkam Algola i Simuly v menshej stepeni k potomkam Smalltalk v chastnosti chasto upominaemyj princip sokrytiya v potomkah Smalltalk semanticheski nedostupen i ideologicheski schitaetsya nesushestvennym V znachitelno bolshej stepeni teoreticheski obosnovannye koncepcii OOP podderzhivayut OO yazyki razvivshiesya na poprishe funkcionalnogo programmirovaniya OCaml dialekty Haskell O Haskell Mondrian Bolee togo osnovnye idei obektnogo modelirovaniya v etom sluchae ne trebuyut pryamoj podderzhki so storony yazyka a mogut byt sravnitelno legko emulirovany Naibolee zametnye otlichiya v proyavlenii pokazatelej kachestva mezhdu yazykami raznyh vidov V mejnstrimnyh yazykah deklariruemye principy naceleny na povyshenie iznachalno nizkogo dlya imperativnogo programmirovaniya koefficienta povtornogo ispolzovaniya koda V polimorfno tipizirovannyh primenenie koncepcij OOP naprotiv oznachaet ochevidnoe ego snizhenie iz za perehoda ot parametricheskogo polimorfizma k ad hoc polimorfizmu V dinamicheski tipizirovannyh yazykah Smalltalk Python Ruby eti principy ispolzuyutsya dlya logicheskoj organizacii programmy i ih vliyanie na koefficient povtornogo ispolzovaniya trudno sprognozirovat on silno zavisit ot discipliny programmista Naprimer v CLOS multimetody odnovremenno yavlyayutsya funkciyami pervogo klassa chto pozvolyaet rassmatrivat ih odnovremenno i kak angl i kak obobshyonnye istinno polimorfnye Tradicionnye OO yazyki ispolzuyut angl to est dopustimost soispolzovaniya obektov raznyh klassov tolko pri uslovii yavnogo ukazaniya rodstvennyh otnoshenij mezhdu klassami Dlya polimorfno tipizirovannyh yazykov harakterna angl to est soglasovanie klassov mezhdu soboj tem zhe mehanizmom chto i soglasovanie chisla 5 s tipom a href wiki D0 A6 D0 B5 D0 BB D1 8B D0 B9 D1 82 D0 B8 D0 BF class mw redirect title Celyj tip int a Dinamicheski tipizirovannye yazyki takzhe zanimayut zdes promezhutochnuyu poziciyu Obobshyonnoe obosnovanie angl vklyuchaya mnozhestvennuyu v seredine 1990 h godov postroil Dzhuzeppe Kastanya IstoriyaEta statya ili razdel nuzhdaetsya v pererabotke Pozhalujsta uluchshite statyu v sootvetstvii s pravilami napisaniya statej Obe ktno orienti rovannoe programmirovanie vozniklo v rezultate razvitiya ideologii procedurnogo programmirovaniya gde dannye i podprogrammy procedury funkcii ih obrabotki formalno ne svyazany Dlya dalnejshego razvitiya obektno orientirovannogo programmirovaniya chasto bolshoe znachenie imeyut ponyatiya sobytiya tak nazyvaemoe sobytijno orientirovannoe programmirovanie i komponenta komponentnoe programmirovanie KOP Vzaimodejstvie obektov proishodit posredstvom soobshenij Rezultatom dalnejshego razvitiya OOP po vidimomu budet agentno orientirovanoe programmirovanie gde agenty nezavisimye chasti koda na urovne vypolneniya Vzaimodejstvie agentov proishodit posredstvom izmeneniya sredy v kotoroj oni nahodyatsya Yazykovye konstrukcii konstruktivno ne otnosyashiesya neposredstvenno k obektam no soputstvuyushie im dlya ih bezopasnoj isklyuchitelnye situacii proverki i effektivnoj raboty inkapsuliruyutsya ot nih v aspekty v aspektno orientirovannom programmirovanii Subektno orientirovannoe programmirovanie rasshiryaet ponyatie obekta posredstvom obespecheniya bolee unificirovannogo i nezavisimogo vzaimodejstviya obektov Mozhet yavlyatsya perehodnoj stadiej mezhdu OOP i agentnym programmirovaniem v chasti samostoyatelnogo ih vzaimodejstviya Pervym yazykom programmirovaniya v kotorom byli predlozheny osnovnye ponyatiya vposledstvii slozhivshiesya v paradigmu byla Simula no termin obektnaya orientirovannost ne ispolzovalsya v kontekste ispolzovaniya etogo yazyka V moment ego poyavleniya v 1967 godu v nyom byli predlozheny revolyucionnye idei obekty klassy virtualnye metody i dr odnako eto vsyo ne bylo vosprinyato sovremennikami kak nechto grandioznoe Fakticheski Simula byla Algolom s klassami uproshayushim vyrazhenie v procedurnom programmirovanii mnogih slozhnyh koncepcij Ponyatie klassa v Simule mozhet byt polnostyu opredeleno cherez kompoziciyu konstrukcij Algola to est klass v Simule eto nechto slozhnoe opisyvaemoe posredstvom primitivov Vzglyad na programmirovanie pod novym uglom otlichnym ot procedurnogo predlozhili Alan Kej i v yazyke Smalltalk Zdes ponyatie klassa stalo osnovoobrazuyushej ideej dlya vseh ostalnyh konstrukcij yazyka to est klass v Smoltoke yavlyaetsya primitivom posredstvom kotorogo opisany bolee slozhnye konstrukcii Imenno on stal pervym shiroko rasprostranyonnym obektno orientirovannym yazykom programmirovaniya V nastoyashee vremya kolichestvo prikladnyh yazykov programmirovaniya spisok yazykov realizuyushih obektno orientirovannuyu paradigmu yavlyaetsya naibolshim po otnosheniyu k drugim paradigmam Naibolee rasprostranyonnye v promyshlennosti yazyki C Delphi C Java Python i dr voploshayut obektnuyu model Simuly Primerami yazykov opirayushihsya na model Smoltoka yavlyayutsya Objective C Python Ruby Opredelenie OOP i ego osnovnye koncepciiV centre OOP nahoditsya ponyatie obekta Obekt eto sushnost kotoroj mozhno posylat soobsheniya i kotoraya mozhet na nih reagirovat ispolzuya svoi dannye Obekt eto ekzemplyar klassa Dannye obekta skryty ot ostalnoj programmy Inkapsulyaciya vklyuchaet v sebya sokrytie No im ne yavlyaetsya Nalichie inkapsulyacii dostatochno dlya obektnosti yazyka programmirovaniya no eshyo ne oznachaet ego obektnoj orientirovannosti dlya etogo trebuetsya nalichie nasledovaniya No dazhe nalichie inkapsulyacii i nasledovaniya ne delaet yazyk programmirovaniya v polnoj mere obektnym s tochki zreniya OOP Osnovnye preimushestva OOP proyavlyayutsya tolko v tom sluchae kogda v yazyke programmirovaniya realizovan polimorfizm podtipov vozmozhnost edinoobrazno obrabatyvat obekty s razlichnoj realizaciej pri uslovii nalichiya obshego interfejsa Slozhnosti opredeleniya V etoj state imeetsya izbytok citat libo slishkom dlinnye citaty Izlishnie i chrezmerno bolshie citaty sleduet obobshit i perepisat svoimi slovami Vozmozhno eti citaty budut bolee umestny v Vikicitatnike ili v Vikiteke OOP imeet uzhe bolee chem sorokaletnyuyu istoriyu no nesmotrya na eto do sih por ne sushestvuet chyotkogo obsheprinyatogo opredeleniya dannoj tehnologii Osnovnye principy zalozhennye v pervye obektnye yazyki i sistemy podverglis sushestvennomu izmeneniyu ili iskazheniyu i dopolneniyu pri mnogochislennyh realizaciyah posleduyushego vremeni Krome togo primerno s serediny 1980 h godov termin obektno orientirovannyj stal modnym v rezultate s nim proizoshlo to zhe samoe chto neskolko ranshe s terminom strukturnyj stavshim modnym posle rasprostraneniya tehnologii strukturnogo programmirovaniya ego stali iskusstvenno prikreplyat k lyubym novym razrabotkam chtoby obespechit im privlekatelnost Byorn Straustrup v 1988 godu pisal chto obosnovanie obektnoj orientirovannosti chego libo v bolshinstve sluchaev svoditsya k nekorrektnomu sillogizmu X eto horosho Obektnaya orientirovannost eto horosho Sledovatelno X yavlyaetsya obektno orientirovannym Timoti Badd pishet Rodzher King argumentirovanno nastaival chto ego kot yavlyaetsya obektno orientirovannym Krome prochih svoih dostoinstv kot demonstriruet harakternoe povedenie reagiruet na soobsheniya nadelyon unasledovannymi reakciyami i upravlyaet svoim vpolne nezavisimym vnutrennim sostoyaniem Po mneniyu Alana Keya sozdatelya yazyka Smalltalk kotorogo schitayut odnim iz otcov osnovatelej OOP obektno orientirovannyj podhod zaklyuchaetsya v sleduyushem nabore osnovnyh principov citiruetsya po vysheupomyanutoj knige T Badda Vsyo yavlyaetsya obektom Vychisleniya osushestvlyayutsya putyom vzaimodejstviya obmena dannymi mezhdu obektami pri kotorom odin obekt trebuet chtoby drugoj obekt vypolnil nekotoroe dejstvie Obekty vzaimodejstvuyut posylaya i poluchaya soobsheniya Soobshenie eto zapros na vypolnenie dejstviya dopolnennyj naborom argumentov kotorye mogut ponadobitsya pri vypolnenii dejstviya Kazhdyj obekt imeet nezavisimuyu pamyat kotoraya sostoit iz drugih obektov Kazhdyj obekt yavlyaetsya predstavitelem klassa kotoryj vyrazhaet obshie svojstva obektov takih kak celye chisla ili spiski V klasse zadayotsya povedenie funkcionalnost obekta Tem samym vse obekty kotorye yavlyayutsya ekzemplyarami odnogo klassa mogut vypolnyat odni i te zhe dejstviya Klassy organizovany v edinuyu drevovidnuyu strukturu s obshim kornem nazyvaemuyu ierarhiej nasledovaniya Pamyat i povedenie svyazannoe s ekzemplyarami opredelyonnogo klassa avtomaticheski dostupny lyubomu klassu raspolozhennomu nizhe v ierarhicheskom dereve Takim obrazom programma predstavlyaet soboj nabor obektov imeyushih sostoyanie i povedenie Obekty vzaimodejstvuyut posredstvom soobshenij Estestvennym obrazom vystraivaetsya ierarhiya obektov programma v celom eto obekt dlya vypolneniya svoih funkcij ona obrashaetsya k vhodyashim v neyo obektam kotorye v svoyu ochered vypolnyayut zaproshennoe putyom obrasheniya k drugim obektam programmy Estestvenno chtoby izbezhat beskonechnoj rekursii v obrasheniyah na kakom to etape obekt transformiruet obrashyonnoe k nemu soobshenie v soobsheniya k standartnym sistemnym obektam predostavlyaemym yazykom i sredoj programmirovaniya Ustojchivost i upravlyaemost sistemy obespechivaetsya za schyot chyotkogo razdeleniya otvetstvennosti obektov za kazhdoe dejstvie otvechaet opredelyonnyj obekt odnoznachnogo opredeleniya interfejsov mezhobektnogo vzaimodejstviya i polnoj izolirovannosti vnutrennej struktury obekta ot vneshnej sredy inkapsulyacii Opredelit OOP mozhno i mnogimi drugimi sposobami Koncepcii Poyavlenie v OOP otdelnogo ponyatiya klassa zakonomerno vytekaet iz zhelaniya imet mnozhestvo obektov so shodnym povedeniem Klass v OOP eto v chistom vide abstraktnyj tip dannyh sozdavaemyj programmistom S etoj tochki zreniya obekty yavlyayutsya znacheniyami dannogo abstraktnogo tipa a opredelenie klassa zadayot vnutrennyuyu strukturu znachenij i nabor operacij kotorye nad etimi znacheniyami mogut byt vypolneny Zhelatelnost ierarhii klassov a znachit nasledovaniya vytekaet iz trebovanij k povtornomu ispolzovaniyu koda esli neskolko klassov imeyut shodnoe povedenie net smysla dublirovat ih opisanie luchshe vydelit obshuyu chast v obshij roditelskij klass a v opisanii samih etih klassov ostavit tolko razlichayushiesya elementy Neobhodimost sovmestnogo ispolzovaniya obektov raznyh klassov sposobnyh obrabatyvat odnotipnye soobsheniya trebuet podderzhki polimorfizma vozmozhnosti zapisyvat raznye obekty v peremennye odnogo i togo zhe tipa V takih usloviyah obekt otpravlyaya soobshenie mozhet ne znat v tochnosti k kakomu klassu otnositsya adresat i odni i te zhe soobsheniya otpravlennye peremennym odnogo tipa soderzhashim obekty raznyh klassov vyzovut razlichnuyu reakciyu Otdelnogo poyasneniya trebuet ponyatie obmena soobsheniyami Pervonachalno naprimer v tom zhe Smalltalk vzaimodejstvie obektov predstavlyalos kak nastoyashij obmen soobsheniyami to est peresylka ot odnogo obekta drugomu specialnogo obekta soobsheniya Takaya model yavlyaetsya chrezvychajno obshej Ona prekrasno podhodit naprimer dlya opisaniya parallelnyh vychislenij s pomoshyu aktivnyh obektov kazhdyj iz kotoryh imeet sobstvennyj potok ispolneniya i rabotaet odnovremenno s prochimi Takie obekty mogut vesti sebya kak otdelnye absolyutno avtonomnye vychislitelnye edinicy Posylka soobshenij estestvennym obrazom reshaet vopros obrabotki soobshenij obektami prisvoennymi polimorfnym peremennym nezavisimo ot togo kak obyavlyaetsya peremennaya soobshenie obrabatyvaet kod klassa k kotoromu otnositsya prisvoennyj peremennoj obekt Dannyj podhod realizovan v yazykah programmirovaniya Smalltalk Ruby Objective C Python Odnako obshnost mehanizma obmena soobsheniyami imeet i druguyu storonu polnocennaya peredacha soobshenij trebuet dopolnitelnyh nakladnyh rashodov chto ne vsegda priemlemo Poetomu vo mnogih sovremennyh obektno orientirovannyh yazykah programmirovaniya ispolzuetsya koncepciya otpravka soobsheniya kak vyzov metoda obekty imeyut dostupnye izvne metody vyzovami kotoryh i obespechivaetsya vzaimodejstvie obektov Dannyj podhod realizovan v ogromnom kolichestve yazykov programmirovaniya v tom chisle C Object Pascal Java Oberon 2 Odnako eto privodit k tomu chto soobsheniya uzhe ne yavlyayutsya samostoyatelnymi obektami i kak sledstvie ne imeyut atributov chto suzhaet vozmozhnosti programmirovaniya Nekotorye yazyki ispolzuyut gibridnoe predstavlenie demonstriruya preimushestva odnovremenno oboih podhodov naprimer CLOS Python Koncepciya virtualnyh metodov podderzhivaemaya etimi i drugimi sovremennymi yazykami poyavilas kak sredstvo obespechit vypolnenie nuzhnyh metodov pri ispolzovanii polimorfnyh peremennyh to est po suti kak popytka rasshirit vozmozhnosti vyzova metodov dlya realizacii chasti funkcionalnosti obespechivaemoj mehanizmom obrabotki soobshenij Osobennosti realizaciiKak uzhe govorilos vyshe v sovremennyh obektno orientirovannyh yazykah programmirovaniya kazhdyj obekt yavlyaetsya znacheniem otnosyashimsya k opredelyonnomu klassu Klass predstavlyaet soboj obyavlennyj programmistom sostavnoj tip dannyh imeyushij v sostave Polya dannyh Parametry obekta konechno ne vse a tolko neobhodimye v programme zadayushie ego sostoyanie svojstva obekta predmetnoj oblasti Inogda polya dannyh obekta nazyvayut svojstvami obekta iz za chego vozmozhna putanica Fakticheski polya predstavlyayut soboj znacheniya peremennye konstanty obyavlennye kak prinadlezhashie klassu Metody Procedury i funkcii svyazannye s klassom Oni opredelyayut dejstviya kotorye mozhno vypolnyat nad obektom takogo tipa i kotorye sam obekt mozhet vypolnyat Klassy mogut nasledovatsya drug ot druga Klass potomok poluchaet vse polya i metody klassa roditelya no mozhet dopolnyat ih sobstvennymi libo pereopredelyat uzhe imeyushiesya Bolshinstvo yazykov programmirovaniya podderzhivaet tolko edinichnoe nasledovanie klass mozhet imet tolko odin klass roditel lish v nekotoryh dopuskaetsya mnozhestvennoe nasledovanie porozhdenie klassa ot dvuh ili bolee klassov roditelej Mnozhestvennoe nasledovanie sozdayot celyj ryad problem kak logicheskih tak i chisto realizacionnyh poetomu v polnom obyome ego podderzhka ne rasprostranena Vmesto etogo v 1990 e gody poyavilos i stalo aktivno vvoditsya v obektno orientirovannye yazyki ponyatie interfejsa Interfejs eto klass bez polej i bez realizacii vklyuchayushij tolko zagolovki metodov Esli nekij klass nasleduet ili kak govoryat realizuet interfejs on dolzhen realizovat vse vhodyashie v nego metody Ispolzovanie interfejsov predostavlyaet otnositelno deshyovuyu alternativu mnozhestvennomu nasledovaniyu Vzaimodejstvie obektov v absolyutnom bolshinstve sluchaev obespechivaetsya vyzovom imi metodov drug druga Inkapsulyaciya obespechivaetsya sleduyushimi sredstvami Kontrol dostupa Poskolku metody klassa mogut byt kak chisto vnutrennimi obespechivayushimi logiku funkcionirovaniya obekta tak i vneshnimi s pomoshyu kotoryh vzaimodejstvuyut obekty neobhodimo obespechit skrytost pervyh pri dostupnosti izvne vtoryh Dlya etogo v yazyki vvodyatsya specialnye sintaksicheskie konstrukcii yavno zadayushie oblast vidimosti kazhdogo chlena klassa Tradicionno eto modifikatory public protected i private oboznachayushie sootvetstvenno otkrytye chleny klassa chleny klassa dostupnye vnutri klassa i iz klassov potomkov i skrytye dostupnye tolko vnutri klassa Konkretnaya nomenklatura modifikatorov i ih tochnyj smysl razlichayutsya v raznyh yazykah Metody dostupa Polya klassa v obshem sluchae ne dolzhny byt dostupny izvne poskolku takoj dostup pozvolil by proizvolnym obrazom menyat vnutrennee sostoyanie obektov Poetomu polya obychno obyavlyayutsya skrytymi libo yazyk v principe ne pozvolyaet obrashatsya k polyam klassa izvne a dlya dostupa k nahodyashimsya v polyah dannym ispolzuyutsya specialnye metody nazyvaemye metodami dostupa Takie metody libo vozvrashayut znachenie togo ili inogo polya libo proizvodyat zapis v eto pole novogo znacheniya Pri zapisi metod dostupa mozhet prokontrolirovat dopustimost zapisyvaemogo znacheniya i pri neobhodimosti proizvesti drugie manipulyacii s dannymi obekta chtoby oni ostalis korrektnymi vnutrenne soglasovannymi Metody dostupa nazyvayut eshyo aksessorami ot angl access dostup a po otdelnosti getterami angl get poluchit i setterami angl set ustanovit Svojstva obekta Psevdopolya dostupnye dlya chteniya i ili zapisi Svojstva vneshne vyglyadyat kak polya i ispolzuyutsya analogichno dostupnym polyam s nekotorymi isklyucheniyami odnako fakticheski pri obrashenii k nim proishodit vyzov metodov dostupa Takim obrazom svojstva mozhno rassmatrivat kak umnye polya dannyh soprovozhdayushie dostup k vnutrennim dannym obekta kakimi libo dopolnitelnymi dejstviyami naprimer kogda izmenenie koordinaty obekta soprovozhdaetsya ego pererisovkoj na novom meste Svojstva po suti ne bolee chem sintaksicheskij sahar poskolku nikakih novyh vozmozhnostej oni ne dobavlyayut a lish skryvayut vyzov metodov dostupa Konkretnaya yazykovaya realizaciya svojstv mozhet byt raznoj Naprimer v C obyavlenie svojstva neposredstvenno soderzhit kod metodov dostupa kotoryj vyzyvaetsya tolko pri rabote so svojstvami to est ne trebuet otdelnyh metodov dostupa dostupnyh dlya neposredstvennogo vyzova V Delphi obyavlenie svojstva soderzhit lish imena metodov dostupa kotorye dolzhny vyzyvatsya pri obrashenii k polyu Sami metody dostupa predstavlyayut soboj obychnye metody s nekotorymi dopolnitelnymi trebovaniyami k signature Polimorfizm realizuetsya putyom vvedeniya v yazyk pravil soglasno kotorym peremennoj tipa klass mozhet byt prisvoen obekt lyubogo klassa potomka eyo klassa Proektirovanie programm v celomOOP orientirovano na razrabotku krupnyh programmnyh kompleksov razrabatyvaemyh komandoj programmistov vozmozhno dostatochno bolshoj Proektirovanie sistemy v celom sozdanie otdelnyh komponentov i ih obedinenie v konechnyj produkt pri etom chasto vypolnyaetsya raznymi lyudmi i net ni odnogo specialista kotoryj znal by o proekte vsyo Obektno orientirovannoe proektirovanie orientiruetsya na opisanie struktury proektiruemoj sistemy prioritetno po otnosheniyu k opisaniyu eyo povedeniya v otlichie ot funkcionalnogo programmirovaniya to est fakticheski v otvete na dva osnovnyh voprosa Iz kakih chastej sostoit sistema V chyom sostoit otvetstvennost kazhdoj iz eyo chastej Vydelenie chastej proizvoditsya takim obrazom chtoby kazhdaya imela minimalnyj po obyomu i tochno opredelyonnyj nabor vypolnyaemyh funkcij obyazannostej i pri etom vzaimodejstvovala s drugimi chastyami kak mozhno menshe Dalnejshee utochnenie privodit k vydeleniyu bolee melkih fragmentov opisaniya Po mere detalizacii opisaniya i opredeleniya otvetstvennosti vyyavlyayutsya dannye kotorye neobhodimo hranit nalichie blizkih po povedeniyu agentov kotorye stanovyatsya kandidatami na realizaciyu v vide klassov s obshimi predkami Posle vydeleniya komponentov i opredeleniya interfejsov mezhdu nimi realizaciya kazhdogo komponenta mozhet provoditsya prakticheski nezavisimo ot ostalnyh razumeetsya pri soblyudenii sootvetstvuyushej tehnologicheskoj discipliny Bolshoe znachenie imeet pravilnoe postroenie ierarhii klassov Odna iz izvestnyh problem bolshih sistem postroennyh po OOP tehnologii tak nazyvaemaya problema hrupkosti bazovogo klassa Ona sostoit v tom chto na pozdnih etapah razrabotki kogda ierarhiya klassov postroena i na eyo osnove razrabotano bolshoe kolichestvo koda okazyvaetsya trudno ili dazhe nevozmozhno vnesti kakie libo izmeneniya v kod bazovyh klassov ierarhii ot kotoryh porozhdeny vse ili mnogie rabotayushie v sisteme klassy Dazhe esli vnosimye izmeneniya ne zatronut interfejs bazovogo klassa izmenenie ego povedeniya mozhet nepredskazuemym obrazom otrazitsya na klassah potomkah V sluchae krupnoj sistemy razrabotchik bazovogo klassa prosto ne v sostoyanii predugadat posledstviya izmenenij on dazhe ne znaet o tom kak imenno bazovyj klass ispolzuetsya i ot kakih osobennostej ego povedeniya zavisit korrektnost raboty klassov potomkov Razlichnye OOP metodologiiKomponentnoe programmirovanie sleduyushij etap razvitiya OOP prototip i klass orientirovannoe programmirovanie raznye podhody k sozdaniyu programmy kotorye mogut kombinirovatsya imeyushie svoi preimushestva i nedostatki Komponentnoe programmirovanie Osnovnaya statya Komponentno orientirovannoe programmirovanie Komponentno orientirovannoe programmirovanie eto svoeobraznaya nadstrojka nad OOP nabor pravil i ogranichenij napravlennyh na postroenie krupnyh razvivayushihsya programmnyh sistem s bolshim vremenem zhizni Programmnaya sistema v etoj metodologii predstavlyaet soboj nabor komponentov s horosho opredelyonnymi interfejsami Izmeneniya v sushestvuyushuyu sistemu vnosyatsya putyom sozdaniya novyh komponentov v dopolnenie ili v kachestve zameny ranee sushestvuyushih Pri sozdanii novyh komponentov na osnove ranee sozdannyh zapresheno ispolzovanie nasledovaniya realizacii novyj komponent mozhet nasledovat lish interfejsy bazovogo Takim obrazom komponentnoe programmirovanie obhodit problemu hrupkosti bazovogo klassa Prototipnoe programmirovanie Prototipnoe programmirovanie sohraniv chast chert OOP otkazalos ot bazovyh ponyatij klassa i nasledovaniya Prototip eto obekt obrazec po obrazu i podobiyu kotorogo sozdayutsya drugie obekty Obekty kopii mogut sohranyat svyaz s roditelskim obektom avtomaticheski nasleduya izmeneniya v prototipe eta osobennost opredelyaetsya v ramkah konkretnogo yazyka Vmesto mehanizma opisaniya klassov i porozhdeniya ekzemplyarov yazyk predostavlyaet mehanizm sozdaniya obekta putyom zadaniya nabora polej i metodov kotorye obekt dolzhen imet i mehanizm klonirovaniya obektov Kazhdyj vnov sozdannyj obekt yavlyaetsya ekzemplyarom bez klassa Kazhdyj obekt mozhet stat prototipom byt ispolzovan dlya sozdaniya novogo obekta s pomoshyu operacii klonirovaniya Posle klonirovaniya novyj obekt mozhet byt izmenyon v chastnosti dopolnen novymi polyami i metodami Klonirovannyj obekt libo stanovitsya polnoj kopiej prototipa hranyashej vse znacheniya ego polej i dubliruyushej ego metody libo sohranyaet ssylku na prototip ne vklyuchaya v sebya klonirovannyh polej i metodov do teh por poka oni ne budut izmeneny V poslednem sluchae sreda ispolneniya obespechivaet mehanizm delegirovaniya esli pri obrashenii k obektu on sam ne soderzhit nuzhnogo metoda ili polya dannyh vyzov peredayotsya prototipu ot nego pri neobhodimosti dalshe po cepochke Klass orientirovannoe programmirovanie V razdele ne hvataet ssylok na istochniki sm rekomendacii po poisku Informaciya dolzhna byt proveryaema inache ona mozhet byt udalena Vy mozhete otredaktirovat statyu dobaviv ssylki na avtoritetnye istochniki v vide snosok 31 dekabrya 2012 Klass orientirovannoe programmirovanie eto programmirovanie sfokusirovannoe na dannyh prichyom dannye i povedenie nerazryvno svyazany mezhdu soboj Vmeste dannye i povedenie predstavlyayut soboj klass Sootvetstvenno v yazykah osnovannyh na ponyatii klass vse obekty razdeleny na dva osnovnyh tipa klassy i ekzemplyary Klass opredelyaet strukturu i funkcionalnost povedenie odinakovuyu dlya vseh ekzemplyarov dannogo klassa Ekzemplyar yavlyaetsya nositelem dannyh to est obladaet sostoyaniem menyayushimsya v sootvetstvii s povedeniem zadannym klassom V klass orientirovannyh yazykah novyj ekzemplyar sozdayotsya cherez vyzov konstruktora klassa vozmozhno s naborom parametrov Poluchivshijsya ekzemplyar imeet strukturu i povedenie zhyostko zadannye ego klassom Proizvoditelnost obektnyh programmGradi Buch ukazyvaet na sleduyushie prichiny privodyashie k snizheniyu proizvoditelnosti programm iz za ispolzovaniya obektno orientirovannyh sredstv Dinamicheskoe svyazyvanie metodov Obespechenie polimorfnogo povedeniya obektov privodit k neobhodimosti svyazyvat metody vyzyvaemye programmoj to est opredelyat kakoj konkretno metod budet vyzyvatsya ne na etape kompilyacii a v processe ispolneniya programmy na chto tratitsya dopolnitelnoe vremya Pri etom realno dinamicheskoe svyazyvanie trebuetsya ne bolee chem dlya 20 vyzovov no nekotorye OOP yazyki ispolzuyut ego postoyanno Znachitelnaya glubina abstrakcii OOP razrabotka chasto privodit k sozdaniyu mnogoslojnyh prilozhenij gde vypolnenie obektom trebuemogo dejstviya svoditsya k mnozhestvu obrashenij k obektam bolee nizkogo urovnya V takom prilozhenii proishodit ochen mnogo vyzovov metodov i vozvratov iz metodov chto estestvenno skazyvaetsya na proizvoditelnosti Nasledovanie razmyvaet kod Kod otnosyashijsya k konechnym klassam ierarhii nasledovaniya kotorye obychno i ispolzuyutsya programmoj neposredstvenno nahoditsya ne tolko v samih etih klassah no i v ih klassah predkah Otnosyashiesya k odnomu klassu metody fakticheski opisyvayutsya v raznyh klassah Eto privodit k dvum nepriyatnym momentam Snizhaetsya skorost translyacii tak kak komponovshiku prihoditsya podgruzhat opisaniya vseh klassov ierarhii Snizhaetsya proizvoditelnost programmy v sisteme so stranichnoj pamyatyu poskolku metody odnogo klassa fizicheski nahodyatsya v raznyh mestah koda daleko drug ot druga pri rabote fragmentov programmy aktivno obrashayushihsya k unasledovannym metodam sistema vynuzhdena proizvodit chastye pereklyucheniya stranic Inkapsulyaciya snizhaet skorost dostupa k dannym Zapret na pryamoj dostup k polyam klassa izvne privodit k neobhodimosti sozdaniya i ispolzovaniya metodov dostupa I napisanie i kompilyaciya i ispolnenie metodov dostupa sopryazheny s dopolnitelnymi rashodami Dinamicheskoe sozdanie i unichtozhenie obektov Dinamicheski sozdavaemye obekty kak pravilo razmeshayutsya v kuche chto menee effektivno chem razmeshenie ih na steke i tem bolee staticheskoe vydelenie pamyati pod nih na etape kompilyacii Nesmotrya na otmechennye nedostatki Buch utverzhdaet chto vygody ot ispolzovaniya OOP bolee vesomy Krome togo povyshenie proizvoditelnosti za schyot luchshej organizacii OOP koda po ego slovam v nekotoryh sluchayah kompensiruet dopolnitelnye nakladnye rashody na organizaciyu funkcionirovaniya programmy Mozhno takzhe zametit chto mnogie effekty snizheniya proizvoditelnosti mogut sglazhivatsya ili dazhe polnostyu ustranyatsya za schyot kachestvennoj optimizacii koda kompilyatorom Naprimer upomyanutoe vyshe snizhenie skorosti dostupa k polyam klassa iz za ispolzovaniya metodov dostupa ustranyaetsya esli kompilyator vmesto vyzova metoda dostupa ispolzuet inlajn podstanovku sovremennye kompilyatory delayut eto vpolne uverenno Kritika OOPV etoj state imeetsya izbytok citat libo slishkom dlinnye citaty Izlishnie i chrezmerno bolshie citaty sleduet obobshit i perepisat svoimi slovami Vozmozhno eti citaty budut bolee umestny v Vikicitatnike ili v Vikiteke Nesmotrya na otdelnye kriticheskie zamechaniya v adres OOP v nastoyashee vremya imenno eta paradigma ispolzuetsya v podavlyayushem bolshinstve promyshlennyh proektov Odnako nelzya schitat chto OOP yavlyaetsya nailuchshej iz metodik programmirovaniya vo vseh sluchayah Kriticheskie vyskazyvaniya v adres OOP Bylo pokazano otsutstvie znachimoj raznicy v produktivnosti razrabotki programmnogo obespecheniya mezhdu OOP i procedurnym podhodom Kristofer Dejt ukazyvaet na nevozmozhnost sravneniya OOP i drugih tehnologij vo mnogom iz za otsutstviya strogogo i obshepriznannogo opredeleniya OOP Aleksandr Stepanov v odnom iz svoih intervyu ukazyval chto OOP metodologicheski nepravilno i chto OOP prakticheski takaya zhe mistifikaciya kak i iskusstvennyj intellekt Frederik Bruks ukazyvaet chto naibolee slozhnoj chastyu sozdaniya programmnogo obespecheniya yavlyaetsya specifikaciya dizajn i testirovanie konceptualnyh konstrukcij a otnyud ne rabota po vyrazheniyu etih konceptualnyh konstrukcij OOP naryadu s takimi tehnologiyami kak iskusstvennyj intellekt graficheskoe programmirovanie ekspertnye sistemy i dr po ego mneniyu ne yavlyaetsya serebryanoj pulej kotoraya mogla by na poryadok velichiny snizit slozhnost razrabotki programmnyh sistem Soglasno Bruksu OOP pozvolyaet sokratit tolko privnesyonnuyu slozhnost v vyrazhenie dizajna Dizajn ostayotsya slozhnym po svoej prirode Edsger Dejkstra ukazyval to o chyom obshestvo v bolshinstve sluchaev prosit eto eliksir ot vseh boleznej Estestvenno eliksir imeet ochen vpechatlyayushie nazvaniya inache budet ochen trudno chto to prodat Strukturnyj analiz i Dizajn Programmnaya inzheneriya Modeli zrelosti Upravlyayushie informacionnye sistemy Management Information Systems Integrirovannye sredy podderzhki proektov Obektnaya orientirovannost Reinzhiniring biznes processov Niklaus Virt schitaet chto OOP ne bolee chem trivialnaya nadstrojka nad strukturnym programmirovaniem istochnik ne ukazan 2055 dnej i preuvelichenie eyo znachimosti vyrazhayusheesya v tom chisle vo vklyuchenii v yazyki programmirovaniya vsyo novyh modnyh obektno orientirovannyh sredstv vredit kachestvu razrabatyvaemogo programmnogo obespecheniya v svoej knige Tyuning veb servera pisal OOP predostavlyaet vam mnozhestvo sposobov zamedlit rabotu vashih programm Izvestnaya obzornaya statya problem sovremennogo OOP programmirovaniya perechislyaet nekotorye tipichnye problemy OOP neavtoritetnyj istochnik V programmistskom folklore poluchila shirokoe rasprostranenie kritika obektno orientirovannogo podhoda v sravnenii s funkcionalnym podhodom s ispolzovaniem metafory Dejstvie v Korolevstve sushestvitelnyh iz esse Stiva Jeggi Esli popytatsya klassificirovat kriticheskie vyskazyvaniya v adres OOP mozhno vydelit neskolko aspektov kritiki dannogo podhoda k programmirovaniyu Kritika reklamy OOP Kritikuetsya yavno vyskazyvaemoe ili podrazumevaemoe v rabotah nekotoryh propagandistov OOP a takzhe v reklamnyh materialah obektno orientirovannyh sredstv razrabotki predstavlenie ob obektnom programmirovanii kak o nekoem vsemogushem podhode kotoryj magicheskim obrazom ustranyaet slozhnost programmirovaniya Kak zamechali mnogie v tom chisle upomyanutye vyshe Bruks i Dejkstra serebryanoj puli ne sushestvuet nezavisimo ot togo kakoj paradigmy programmirovaniya priderzhivaetsya razrabotchik sozdanie netrivialnoj slozhnoj programmnoj sistemy vsegda sopryazheno so znachitelnymi zatratami intellektualnyh resursov i vremeni Iz naibolee kvalificirovannyh specialistov v oblasti OOP nikto kak pravilo ne otricaet spravedlivost kritiki etogo tipa Osparivanie effektivnosti razrabotki metodami OOP Kritiki osparivayut tezis o tom chto razrabotka obektno orientirovannyh programm trebuet menshe resursov ili privodit k sozdaniyu bolee kachestvennogo PO Provoditsya sravnenie zatrat na razrabotku raznymi metodami na osnovanii kotorogo delaetsya vyvod ob otsutstvii u OOP preimushestv v dannom napravlenii Uchityvaya krajnyuyu slozhnost obektivnogo sravneniya razlichnyh razrabotok podobnye sopostavleniya kak minimum sporny S drugoj storony poluchaetsya chto rovno tak zhe sporny i utverzhdeniya ob effektivnosti OOP Proizvoditelnost obektno orientirovannyh programm Ukazyvaetsya na to chto celyj ryad vrozhdyonnyh osobennostej OOP tehnologii delaet postroennye na eyo osnove programmy tehnicheski menee effektivnymi po sravneniyu s analogichnymi neobektnymi programmami Ne otricaya dejstvitelno imeyushihsya dopolnitelnyh nakladnyh rashodov na organizaciyu raboty OOP programm sm razdel Proizvoditelnost vyshe odnako znachenie snizheniya proizvoditelnosti chasto preuvelichivaetsya kritikami V sovremennyh usloviyah kogda tehnicheskie vozmozhnosti kompyuterov chrezvychajno veliki i postoyanno rastut dlya bolshinstva prikladnyh programm tehnicheskaya effektivnost okazyvaetsya menee sushestvenna chem funkcionalnost skorost razrabotki i soprovozhdaemost Lish dlya nekotorogo ochen ogranichennogo klassa programm PO vstroennyh sistem drajvery ustrojstv nizkourovnevaya chast sistemnogo PO nauchnoe PO proizvoditelnost ostayotsya kriticheskim faktorom Kritika otdelnyh tehnologicheskih reshenij v OOP yazykah i bibliotekah Eta kritika mnogochislenna no zatragivaet ona ne OOP kak takovoe a priemlemost i primenimost v konkretnyh sluchayah teh ili inyh realizacij eyo mehanizmov Odnim iz izlyublennyh obektov kritiki yavlyaetsya yazyk C vhodyashij v chislo naibolee rasprostranyonnyh promyshlennyh OOP yazykov Obektno orientirovannye yazykiOsnovnaya statya Obektno orientirovannyj yazyk programmirovaniya Mnogie sovremennye yazyki specialno sozdany dlya oblegcheniya obektno orientirovannogo programmirovaniya Odnako mozhno primenyat tehniki OOP i dlya ne obektno orientirovannogo yazyka i naoborot primenenie obektno orientirovannogo yazyka vovse ne oznachaet chto kod avtomaticheski stanovitsya obektno orientirovannym Kak pravilo obektno orientirovannyj yazyk OOYa soderzhit sleduyushij nabor elementov Obyavlenie klassov s polyami dannymi chlenami klassa i metodami funkciyami chlenami klassa Mehanizm rasshireniya klassa nasledovaniya porozhdenie novogo klassa ot sushestvuyushego s avtomaticheskim vklyucheniem vseh osobennostej realizacii klassa predka v sostav klassa potomka Bolshinstvo OOYa podderzhivayut tolko edinichnoe nasledovanie Polimorfnye peremennye i parametry funkcij metodov pozvolyayushie prisvaivat odnoj i toj zhe peremennoj ekzemplyary razlichnyh klassov Polimorfnoe povedenie ekzemplyarov klassov za schyot ispolzovaniya virtualnyh metodov V nekotoryh OOYa vse metody klassov yavlyayutsya virtualnymi Nekotorye yazyki dobavlyayut k ukazannomu minimalnomu naboru te ili inye dopolnitelnye sredstva V ih chisle Konstruktory destruktory finalizatory Svojstva aksessory Indeksatory Sredstva upravleniya vidimostyu komponentov klassov modifikatory dostupa ili interfejsy takie kak public private protected feature i dr Odni yazyki otvechayut principam OOP v polnoj mere v nih vse osnovnye elementy yavlyayutsya obektami imeyushimi sostoyanie i svyazannye metody Primery podobnyh yazykov Smalltalk Eiffel Sushestvuyut gibridnye yazyki sovmeshayushie obektnuyu podsistemu v celostnom vide s podsistemami drugih paradigm kak dva i bolee yazyka v odnom pozvolyayushie sovmeshat v odnoj programme obektnye modeli s inymi i razmyvayushie gran mezhdu obektno orientirovannoj i drugimi paradigmami za schyot nestandartnyh vozmozhnostej balansiruyushih mezhdu OOP i drugimi paradigmami takih kak mnozhestvennaya dispetcherizaciya parametricheskie klassy vozmozhnost manipulirovat metodami klassov kak samostoyatelnymi obektami i dr Primery takih yazykov CLOS Dylan OCaml Python Ruby Objective C Odnako naibolee rasprostraneny yazyki vklyuchayushie sredstva emulyacii obektnoj modeli poverh bolee tradicionnoj imperativnoj semantiki Alan Kej nazval takie yazyki skleivaniem vozmozhnostej angl agglutination of features v protivoves chistote stilya angl crystalization of style yazykov voploshayushih nekuyu paradigmu neposredstvenno Primery takih yazykov Simula C Visual Basic Delphi Modula Modula 2 Java C PHP SiSm takzheORM tehnologiya svyazyvaniya OO programm c bazami dannyh Domennyj obekt UMLPrimechaniyaBuch 1998 Edsger W Dijkstra Programmirovanie kak vid chelovecheskoj deyatelnosti 1979 EWD117 neopr Data obrasheniya 26 fevralya 2019 7 avgusta 2018 goda L V Uspenskij Slovo o slovah 5 e izd L Detskaya literatura Leningradskoe otdelenie 1971 neopr Data obrasheniya 26 fevralya 2019 24 fevralya 2019 goda Pirs 2012 Abadi Cardelli 1994 Cardelli 1991 Cardelli 1985 Pirs 2012 Object Oriented Programming in Standard ML neopr Data obrasheniya 3 fevralya 2016 14 yanvarya 2016 goda Cardelli 1985 1 3 Kinds of Polymorphism s 6 Castagna Ghelli Longo A calculus for overloaded functions with subtyping Information and Computation Academic press 1995 T 117 vyp 1 S 115 135 doi 10 1006 inco 1995 1033 18 noyabrya 2018 goda Castagna Object Oriented Programming A Unified Foundation Birkhauser 1996 S 384 ISBN 978 0 8176 3905 1 Pirs 2012 Nobody Agrees On What OO Is neopr Data obrasheniya 14 iyulya 2012 14 iyulya 2012 goda Timoti Badd Obektno orientirovannoe programmirovanie v dejstvii An Introduction to Object Oriented Programming SPb Piter 1997 464 s V dejstvii 6000 ekz ISBN 5 88782 270 8 Roger King My cat is object oriented Sleduet odnako zametit chto ispolzovanie aksessorov podryvaet inkapsulyaciyu sut kotoroj sostoit ne v sokrytii vseh chlenov obekta a v tom chto vnutrennee sostoyanie obekta ispolzuetsya lish dlya raboty sovershaemoj im neposredstvenno V OOP programmist rabotaet s ponyatiyami a ne s dannymi Buch 1998 s 276 278 Thomas E Potok Mladen Vouk Andy Rindos Productivity Analysis of Object Oriented Software Developed in a Commercial Environment angl Software Practice and Experience 1999 Vol 29 no 10 P 833 847 6 yanvarya 2007 goda C J Date Introduction to Database Systems 6th ed Page 650 STLport An Interview with A Stepanov neopr Data obrasheniya 27 marta 2007 4 marta 2009 goda EWD 1175 The strengths of the academic enterprise neopr Data obrasheniya 6 avgusta 2007 31 oktyabrya 2007 goda Pochemu obektno orientirovannoe programmirovanie provalilos neopr Data obrasheniya 22 sentyabrya 2010 23 sentyabrya 2010 goda Steve Yegge Execution in the Kingdom of Nouns neopr Data obrasheniya 9 sentyabrya 2015 5 sentyabrya 2015 goda angl chastichnyj perevod ot 2 maya 2015 na Wayback Machine rus Alan Kej The Early History of Smalltalk Apple Computer ACM SIGPLAN Notices vol 28 3 March 1993 14 sentyabrya 2012 goda Python OOPs Concept H2kinfosys Blog amer angl 3 iyunya 2020 Data obrasheniya 20 marta 2024 LiteraturaBadd T Obektno orientirovannoe programmirovanie v dejstvii SPb Piter 1997 ISBN 5 88782 270 8 Buch G Obektno orientirovannyj analiz i proektirovanie s primerami prilozhenij na C Object Oriented Analysis and Design with Applications Per I Romanovskij F Andreev 2 e izd M SPb Binom Nevskij dialekt 1998 560 s 6000 ekz ISBN 5 7989 0067 3 Buch G Robert A Maksimchuk Majkl U Engl Bobbi Dzh Yang Dzhim Konallen Kelli A Hyuston Obektno orientirovannyj analiz i proektirovanie s primerami prilozhenij 3 e izdanie 2010 ISBN 978 5 8459 1401 9 ISBN 0 201 89551 X Ian Grehem Obektno orientirovannye metody Principy i praktika Object Oriented Methods Principles amp Practice 3 e izd M 2004 S 880 ISBN 0 201 61913 X angl Typeful programming angl IFIP State of the Art Reports New York Springer Verlag 1991 Vyp Formal Description of Programming Concepts angl Peter Wegner On Understanding Types Data Abstraction and Polymorphism New York USA ACM 1985 T 17 vyp 4 S 471 523 ISSN 0360 0300 doi 10 1145 6041 6042 Martin Abadi angl A Semantics of Object Types angl angl 1994 Martin R Chast II Paradigmy programmirovaniya Chistaya arhitektura Clean Architecture SPb Piter 2018 ISBN 978 5 4461 0772 8 Majer B Obektno orientirovannoe konstruirovanie programmnyh sistem M Russkaya redakciya 2005 ISBN ISBN 5 7502 0255 0 Benjamin Pierce Types and Programming Languages neopr MIT Press 2002 ISBN 0 262 16209 1 Perevod na russkij yazyk Bendzhamin Pirs Tipy v yazykah programmirovaniya neopr 2012 680 s ISBN 978 5 7913 0082 9 Antoni Sintes Osvoj samostoyatelno obektno orientirovannoe programmirovanie za 21 den Sams Teach Yourself Object Oriented Programming in 21 Days M 2002 S 672 ISBN 0 672 32109 2 Usov T M Vvedenie v obektno orientirovannoe programmirovanie s primerami na C 2019 ISBN 978 5 600 02430 4 ot 23 maya 2020 na Wayback Machine Design Patterns Matt Weisfeld The Object Oriented Thought Process Fourth Edition Addison Wesley Professional 2013 336 s ISBN 978 0 321 86127 6 SsylkiV rodstvennyh proektahKnigi v VikiuchebnikeMediafajly na Vikisklade ObzoryObzor Obektno Orientirovannogo Programmirovaniya ot 5 fevralya 2017 na Wayback Machine rus Osnovy obektno orientirovannogo programmirovaniya ot 2 fevralya 2017 na Wayback Machine rus Intuit ru Bertran Mejer C Bobrovskij Istoriya OOP ot 22 fevralya 2008 na Wayback Machine PC Week RE 28 ot 05 08 2003 g str 10 i 29 ot 12 08 2003 g str 20 Kritika OOPRichard P Gebriel Obektnaya paradigma provalilas ot 4 yanvarya 2009 na Wayback Machine Gaj L Stil Obektnaya paradigma ne provalilas ot 3 yanvarya 2009 na Wayback Machine
Вершина