Úvodní stránka | Tato stránka v originále

Objektově orientované programování

Objektově orientovaný programovat (OOP) je počítač programovací vzor to zdůrazňuje následující aspekty:

Poznámky: Abstrakce je důležitá k ale nejedinečný pro OOP. Opakovaná použitelnost je výhoda často přičítána OOP.

OOP je často nazýván vzorem poněkud než styl nebo druh programování zdůraznit bod ten OOP může změnit směr software je vyvinut, tím, že změní směr že programátoři a inženýři softwaru myslí na software.

Tabulka s obsahem
1 základní
2 OOP s procedurálními jazyky
3 definice
4 prvotřídní-založené modely
5 objektu-založené modely
6 historie
7 další četby
8 vidět také:
9 vnějšího spojení

Základní

Nejvíce základní stránka objektově orientovaného programování je že počítačový program je složen ze sbírky čeho být volaly objekty. Každý objekt je schopný dostaní zpráv a poslání zpráv k jiným objektům a uživatel zpřístupňuje objekt přes nezávislou osobu rozhraní od vnitřní struktury objektu (shrnutí). Tato technika je známá jako abstrakce s použitím objektů.

V OOP, programátoři mají se soustředit na zodpovědnost roztřiďování přes objekty, který je v srovnání s pohledem v tradičních vzorech takový jako naléhavé programování ve kterém programátoři jsou více znepokojení nad kroky procesů dat k produkčním jistým výsledkům. Podpůrcové OOP prohlašují, že použití OOP stylového programování může usnadnit programy psát, tvrdit, opětovné použití a ukázat se správný (přinejmenším v některých případech).

Fundamentally, tyto výhody přijdou ze skutečnosti, že OOP je modulární, bytí skládalo objektů (podobný náhradníkovi-programy) který být jednoduchý, self obsahoval a snadno identifikovatelný. Modularity dovolí části programu odpovídat skutečným aspektům problémové situace a proto modelovat skutečný svět. Opravdu, namítat orientované programování často začne od písemného prohlášení problémové situace. Pak procesem vkládat objekty nebo proměnné pro podstatná jména, metody na slovesa a atributy pro adjektiva pak dobrý start je dělán na kostře pro program, který modeluje a dohody s, ta situace.

Toto je velmi intuitivní způsob, jak pracovat. OOP je hlavní postup na předchozí complexities procedury založené metody. Ve velkých projektech, procedurální metody inklinovaly vyvinout velmi komplikované podmínkové smyčky a větve, obtížný rozumět a tvrdit.

Dědičnost

Dědičnost: Jeden objekt má údaje a/nebo funkčnost může být založená na těch jiných objektů, od kterého bývalý objekt je řekl, aby zdědil. Toto dovolí commonalities mezi různé druhy objektů být vyjádřen jakmile a reused rozmanité časy. Dědičnost je také obyčejně držená zahrnovat subtyping, whereby jeden druh objektu je definován být více specializovaná verze dalšího typu (viz Liskov substituční princip), ačkoli non-subtyping dědičnost je také možná. Dědičnost je typicky vyjadřovaný tím, že popisuje třídy objektů uspořádaných v hierarchii dědičnosti odrážet obyčejné chování.

OOP s procedurálními jazyky

V procedurálních jazycích, OOP často se objeví jako forma kde datové typy jsou rozšířeny se chovat jako objekt v OOP, velmi podobný abstraktnímu datovému typu s rozšířením takový jako dědičnost. Každá metoda je vlastně podprogram který je syntactically svázané k třídě.

Definice

Definice OOP jsou sporné. V nejobecnějším smyslu, objektově orientované programování se odkazuje na praxi sledovacího softwaru primárně v podmínkách “věcí” (namítá) to obsluhuje, poněkud než akce to hraje. Jiné vzory takový jak funkční a procedurální programovací fokus primárně na akcích, s objekty být druhotná uvažování; v OOP, situace je hovořit.

Široce-použitá terminologie rozlišuje objektově orientované programování od namítat-umístěný. Bývalý je dodržován zahrnovat dědičnost (popsal dole), zatímco druhé laně ne. Vidět Spor o definici objektově orientovaného programování

Prvotřídní-založené modely

Nejpopulárnější a rozvinutý model OOP je zatříděný založený model, jak protichůdný k objektu-založený model. V tomto modelu, namítá jsou entity, které se spojí obě stát (tj. data) a chování (tj., procedury, nebo methodss). Objekty jsou definovány třídy, který je definice nebo modrotisk, všech předmětů specického druhu. Objekt je považován za příklad třídy. Třída je podobná struktuře, s přidáním ukazatelů metody, členského řízení přístupu a implicitního členského datového typu který lokalizuje příklady třídy (tj.: skutečné předměty té třídy) v hierarchii třídy (podstatný pro provozní dědičnost rysy).

Namítat-založené modely

Namítat-umístěný programovací techniky zahrnují pojetí namítat (shrnutí a abstrakci) ale nezahrnují třídu-založené modely dědičnosti.

Historie

Představy o objektově orientovaném programování nejprve přijaly kořen Simula 67, jazyk určený pro simulace výroby, vytvořený Ole-Johan Dahl a Kristen Nygaardová Norského výpočetního střediska v Oslo. (údajně, příběh je že oni pracovali na simulacích lodi, a byl zmaten combinatorial explozí jak různé atributy od různých lodí mohly ovlivnit jednoho jiný. Nápad napadl skupinu různé druhy lodí do různých tříd objektů, každá třída objektů být zodpovědný pro definovat jeho vlastní data a chování.) oni byli později očištění v Smalltalk, který byl vyvinut v Simula u Oxeroxovat PARC, ale byl navrhnut být plně dynamický systém ve kterých objektech mohl být vytvořen a upravený “bezmyšlenkovitě” poněkud než mít systém založený na programech statické elektřiny.

Objektově orientované programování “vzlétlo” jako dominantní programovací metodologie během střední-osmdesátá léta, velmi očekávaný k vlivu C + +, rozšíření C programovací jazyk. Jeho vláda byla dále stmelena rostoucí popularitou grafických uživatelských rozhraní, pro kterého objektově orientované programování je údajně dobře-vhodný. Opravdu, vzestup GUIs měnil fokus uživatele od následných instrukcí textově orientovaných rozhraní k více dynamické manipulaci hmatatelných komponent. Příklad blízko příbuzný dynamický knihovna Gui a OOP jazyk mohou být nalezení v Kakaových kostrách na Mac OS X, zapsaný Cíl C, objektově orientované, dynamické komunikační rozšíření k C založený na Smalltalk.

Objektově orientované rysy byly přidány k mnoha existujícím jazykům během toho času, včetně Ady, Základní, Lisp, Pascal, a jiní. Sčítat tyto rysy k jazykům, které nebyly zpočátku určeny pro je často vedly k problémům s kompatibilitou a maintainability kódu. “čistý” objektově orientované jazyky, na druhé straně, postrádal rysy tolik programátoři přišli záviset na. To překlene tuto mezeru, mnoho pokusů bylo předstíral, že vytvoří nové jazyky založené na objektově orientovaných metodách ale dovolovat některé procedurální rysy v “bezpečných” cestách. Bertrand Meyer je Eiffel byl brzy a mírně úspěšný jazyk s těmi cíli.

V minulé dekádě Java se objevila v širokém používání částečně protože to podoba k C jazyk ale více důležitě protože jestliže jeho realizace používat virtuální stroj, který teoreticky provozuje kód nezměněný na mnoha různých platformách, latter který dělá tomu miláčka větších vývojových dílen s různorodými prostředími.

Více nedávno, množství jazyků se ukázali, že být primárně objektově orientovaný přesto slučitelný s procedurální metodologií, takový jako Python a Rubínový. Vedle Javy, pravděpodobně nejvíce komerčně důležité nedávné objektově orientované jazyky jsou VB.NET a C ostrý navržený pro Microsoft . síť platforma.

Spravedlivé jak procedurální programování vedlo k refinements techniky takový jako strukturované programování, moderní objektově orientované softwarové metody výpočtu obsahují refinements takový jako použití vzorů designu, design kontraktema jazyky modelování (takový jako UML).

Další četba

Viz též:

Vnější spojení