Esti artículu o seición necesita referencies qu'apaezan nuna publicación acreitada, como revistes especializaes, monografíes, prensa diaria o páxines d'Internet fiables. |
Tipu | Paradigma de programación y término de ciencias de la computación (es) |
---|---|
Etiqueta de Stack Exchange | Stack Exchange |
La programación empobinada a oxetos (PO, o OOP según les sos sigles n'inglés) ye un paradigma de programación que vien anovar la forma de llograr resultancies. Los oxetos manipolien los datos d'entrada pal llogru de datos de salida específicos, onde cada oxetu ufierta una funcionalidad especial.
Munchos de los oxetos pre-diseñaos de los llinguaxes de programación actuales dexen l'agrupación en biblioteques o llibreríes, sicasí, munchos d'estos llinguaxes dexen al usuariu la creación de les sos propies biblioteques.
Ta basada en delles téuniques, incluyendo heriedu, cohesión, astracción, polimorfismu, acoplamientu y encapsulamiento.
El so usu popularizar a principios de la década de 1990. Na actualidá, esiste una gran variedá de llinguaxes de programación que soporten la orientación a oxetos.
Los oxetos son entidaes que tienen un determináu "estáu", "comportamientu (métodu)" y "identidá":
Un oxetu contién tola información que dexa definilo ya identificalo frente a otros oxetos pertenecientes a otres clases ya inclusive frente a oxetos d'una mesma clase, al poder tener valores bien estremaos nos sos atributos. De la mesma, los oxetos disponen de mecanismos d'interacción llamaos métodos, que favorecen la comunicación ente ellos. Esta comunicación favorez de la mesma el cambéu d'estáu nos mesmos oxetos. Esta carauterística lleva a tratalos como unidaes indivisibles, nes que nun se dixebra l'estáu y el comportamientu.
Los métodos (comportamientu) y atributos (estáu) tán estrechamente rellacionaos pola propiedá de conxuntu. Esta propiedá destaca qu'una clase rique de métodos pa poder tratar los atributos colos que cunta. El programador tien de pensar indistintamente en dambos conceutos, ensin dixebrar nin da-y mayor importancia a dalgún d'ellos. Faelo podría producir el vezu erróneu de crear clases contenedoras d'información per un sitiu y clases con métodos que remanen a les primeres pol otru. D'esta manera taría realizándose una "programación estructurada camuflada" nun llinguaxe de PO.
La programación empobinada a oxetos difier de la programación estructurada tradicional, na que los datos y los procedimientos tán separaos y ensin rellación, una y bones lo único que se busca ye'l procesamientu d'unos datos d'entrada pa llograr otros de salida. La programación estructurada anima al programador a pensar sobremanera en términos de procedimientos o funciones, y en segundu llugar nes estructures de datos qu'esos procedimientos remanen. Na programación estructurada solo escríbense funciones que procesen datos. El programadores qu'empleguen PO, sicasí, primero definen oxetos pa depués unvia-yos mensaxes solicitándo-yos que realicen los sos métodos por sigo mesmos.
Los conceutos de la PO tienen orixe n'Asemeya 67, un llinguaxe diseñáu pa faer simulaciones, creáu por Ole-Johan Dahl y Kristen Nygaard, del Centru de Cómputu Noruegu n'Oslu. Nesti centru trabayar en simulaciones de naves, que fueron confundíes pola esplosión combinatoria de cómo les diverses cualidaes de distintes naves podíen afectar unes a les otres. La idea surdió al arrexuntar los diversos tipos de naves en diverses clases d'oxetos, siendo responsable cada clase d'oxetos de definir los sos "mesmos" datos y comportamientos. Fueron refinaos más tarde en Smalltalk, desenvueltu n'Asemeya en Xerox PARC (que la so primer versión foi escrita sobre Basic) pero diseñáu pa ser un sistema dafechu dinámicu nel cual los oxetos podríen crease y modificar "sobre la marcha" (en tiempu d'execución) en llugar de tener un sistema basáu en programes estáticos.
La PO foise convirtiendo nel estilu de programación dominante a mediaos de los años 1980, en gran parte por cuenta de la influencia de C++, una estensión del llinguaxe de programación C. La so dominación foi consolidada gracies a la puxanza de les interfaces gráfiques d'usuariu, pa les cualos la PO ta particularmente bien afecha. Nesti casu, fálase tamién de programación empobinada por eventos.
Les carauterístiques d'orientación a oxetos fueron amestaes a munchos llinguaxes esistentes mientres esi tiempu, incluyendo Ada, BASIC, Lisp más Pascal, ente otros. La adición d'estes carauterístiques a los llinguaxes que nun fueron diseñaos primeramente pa elles condució de cutiu a problemes de compatibilidá y na capacidá de caltenimientu del códigu. Los llinguaxes empobinaos a oxetos "puros", pela so parte, escarecíen de les carauterístiques de les cualos munchos programadores vinieren depender. Pa saltar esta torga, fixéronse munches tentatives pa crear nuevos llinguaxes basaos en métodos empobinaos a oxetos, pero dexando delles carauterístiques imperatives de maneres "segures". El llinguaxe de programación Eiffel de Bertrand Meyer foi un tempranu y moderadamente acertáu llinguaxe con esos oxetivos, pero agora foi esencialmente reemplazáu por Java, en gran parte por cuenta de la apaición d'Internet y a la implementación de la máquina virtual Java na mayoría de navegador web. PHP na so versión 5 modificóse; soporta una orientación completa a oxetos, cumpliendo toles carauterístiques propies de la orientación a oxetos.
La PO ye una forma de programar que trata d'atopar una solución a estos problemes. Introduz nuevos conceutos, que superen y amplíen conceutos antiguos yá conocíos. Ente ellos destaquen los siguientes:
Ye un sucesu nel sistema (tal como una interacción del usuariu cola máquina, o un mensaxe unviáu por un oxetu). El sistema remana l'eventu unviando'l mensaxe fayadizu al oxetu pertinente. Tamién puede definise como eventu la reacción que puede desencadenar un oxetu; esto ye, l'acción que xenera.
Una comunicación empobinada a un oxetu, que lu ordenar qu'execute unu de los sos métodos con ciertos parámetros acomuñaos al eventu que lu xeneró.
Contenedor d'un tipu de datos acomuñaos a un oxetu (o a una clase d'oxetos), que fai los datos visibles dende fora del oxetu y esto defínese como les sos carauterístiques predeterminadas, y que'l so valor puede ser alteriáu pola execución de dalgún métodu.
Ye una variable que se declara privada, que puede ser namái aportada y alteriada por un métodu del oxetu, y que s'utiliza pa indicar distintes situaciones posibles pal oxetu (o clase d'oxetos). Nun ye visible al programador que remana una instancia de la clase.
Atributos, identidá, rellaciones y métodos.
Un oxetu representar por mediu d'una tabla o entidá que tea compuesta polos sos atributos y funciones correspondientes.
En comparanza con un llinguaxe imperativu, una "variable" nun ye más qu'un contenedor internu del atributu del oxetu o d'un estáu internu, según la "función" ye un procedimientu internu del métodu del oxetu.
Esiste un alcuerdu alrodiu de qué carauterístiques contempla la "orientación a oxetos". Les carauterístiques siguientes son les más importantes:[1]
La PO ye un paradigma surdíu nos años 1970, qu'utiliza oxetos como elementos fundamentales na construcción de la solución. Un oxetu ye una astracción de dalgún fechu o ente del mundu real, con atributos que representen les sos carauterístiques o propiedaes, y métodos qu'emulen el so comportamientu o actividá. Toles propiedaes y métodos comunes a los oxetos se encapsulan o arrexunten en clases. Una clase ye una plantía, un prototipu pa crear oxetos; polo xeneral, dizse que cada oxetu ye una instancia o exemplar d'una clase.
Pa realizar programación empobinada a oxetos esisten dos corrientes principales:[2][3]
Asemeya (1967) ye aceptáu como'l primer llinguaxe que tien les carauterístiques principales d'un llinguaxe empobináu a oxetos. Foi creáu pa faer programes de simulación, onde los "oxetos" son la representación de la información más importante.
Smalltalk (1972 a 1980) ye posiblemente l'exemplu canónicu, y col que gran parte de la teoría de la programación empobinada a oxetos desenvolvióse.
Ente los llinguaxes empobinaos a oxetos destáquense los siguientes:
Munchos d'estos llinguaxes de programación nun son puramente empobinaos a oxetos, sinón que son híbridos que combinen la PO con otros paradigmes.
Al igual que C++, otros llinguaxes, como OOCOBOL, OOLisp, OOProlog y Object REXX, fueron creaos añadiendo estensiones empobinaes a oxetos a un llinguaxe de programación clásicu.
Un nuevu pasu na astracción de paradigmes de programación ye la Programación Empobinada a Aspeutos (POA). Anque ye inda una metodoloxía n'estáu de maduración, cada vez atrai a más investigadores ya inclusive proyeutos comerciales en tol mundu.