Remove ads
From Wikipedia, the free encyclopedia
En la ciència computacional, un objecte és un espai de memòria que té un valor i possiblement està referenciat per un identificador. Un objecte pot ser una variable, una funció o una estructura de dades. En el paradigma de la programació orientada a objectes, un "objecte" fa referència a una instància d'una classe que pot ser una combinació de variables, funcions i estructures de dades. En l'àmbit de les Bases de dades un objecte pot ser una taula, columna o una associació entre una dada i una entitat de la Base de dades (com la relació entre l'edat d'una persona amb aquesta). Així doncs també es pot definir objecte, en la programació orientada a objectes, com una "instància" d'una classe.[1]
El concepte d'objecte es va introduir amb el llenguatge de programació Simula, creat a Oslo entre el 1962 i 1967 amb la finalitat de facilitar la programació de simuladors. En aquest llenguatge de programació les característiques i el comportament dels objectes a simular es descrivien en el codi font.
El següent pas va ser el llenguatge de programació orientat a objectes Smalltalk, que va ser creat pel centre de recerca de Xerox el 1972, i que influiria els més importants llenguatges de programació orientada a objectes (com per exemple el C++ o Java).
La programació orientada a objectes es va fer popular, fent extensiu el seu ús, el 1983 amb el llançament del llenguatge de programació C++, un llenguatge orientat a objectes, amb un ús similar al també popular llenguatge C.
Les primeres bases de dades orientades a objectes es van comercialitzar el 1993, i fins a finals del segle XX no va arribar a ser madura.
Un altre llenguatge que va col·laborar a l'ús dels objectes en la programació va ser el llenguatge Java, creat per Sun Microsystems el 1995 i destinat a la programació d'aplicacions web.
Avui en dia la programació orientada a objectes és ja coneguda i moltes aplicacions funcionen mitjançant objectes.
Una distinció important en els llenguatges de programació és la diferència entre llenguatge orientat a objectes i llenguatge basat en objectes. Un llenguatge es considera que està basat en objectes si disposa de les capacitats bàsiques d'aquests: identitat, propietats i atributs. El Polimorfisme fa referència a l'habilitat de sobrecarregar el nom d'una funció amb diferents comportaments depenent de l'objecte passat a la funció. El pas de missatges convencional discrimina només el primer objecte i considera que està "enviant un missatge" a aquest objecte. No obstant, alguns llenguatges de programació orientada a objectes com el Flavors o el Common Lisp Object System (CLOS) permeten discriminar més d'un paràmetre de la funció.[2] L'herència és l'habilitat de crear una subclasse a partir d'una classe ja existent, heretant tota la informació de la classe pare, però que canvia un o més mètodes.[3][4]
La programació orientada a objectes és un enfocament al disseny modular (dividir el programa en mòduls)[5] re-utilitzable. La programació orientada a objectes és l'evolució de la pràctica del bon disseny que es remunta als inicis de la programació. La programació orientada a objectes és simplement l'extensió lògica de les tècniques més antigues tals com la programació estructurada i els tipus de dades abstractes. Un objecte és un tipus abstracte de dades juntament amb el polimorfisme i l'herència.
El contrari dels programes estructurats com a codi i dades, els sistemes orientats a objectes integren els dos conceptes que usen "objectes". Un objecte té un estat (dada) i un comportament (codi). Els objectes corresponen a les coses del món real. Per tant per exemple, un programa gràfic tindrà objectes tals com un cercle, un quadrat, un menú. Un sistema d'una botiga en xarxa tindria objectes com carro de compra, comprador, producte. El sistema de compra suportaria accions tals com fer una comanda, realitzar un pagament i oferir un descompte. Els objectes estan dissenyats en herència. Per tant per exemple en el sistema de compra hi pot haver unes classes d'alt nivell tals com productes electrònics, productes de cuina o llibres. Hi pot haver més nivells de refinament com per exemple de productes electrònics: Reproductors CD i DVD, etc. Aquestes classes i subclasses corresponen a altres conjunts i subconjunts en la matemàtica lògica.
Un concepte important dels objectes són els patrons de disseny. Un patró proporciona una plantilla re-utilitzable per a fer front problemes semblants. Els següents descripcions són exemples d'alguns dels patrons de disseny més usats per objectes.
Hi ha tres propietats que caracteritzen els objectes:
Els objectes orientats no només són un model de programació. Poden ser usats igualment com una definició d'una interfície d'un llenguatge distribuït. Els objectes en un model computacional distribuït tendeixen a durar més i estan més orientats als serveis que la programació d'objectes.
Un mètode estàndard per a empaquetar objectes distribuïts és amb la interfície de definició del llenguatge (IDL). Un IDL protegeix el client de tots els detalls d'un objecte de servidor distribuït. Els detalls tals com a quin computador està emmagatzemat l'objecte, quin llenguatge de programació i sistema operatiu utilitza, etc. Les IDL també són una part de l'entorn distribuït que proveeix de serveix tals com les transaccions o persistència als objectes d'una forma unificada. Dos dels més populars estàndards per a objectes distribuïts són els Object Management Group CORBA estàndard i Microsoft's DCOM.
Juntament amb els objectes distribuïts, un nombre d'altres extensions del concepte bàsic d'objecte s'han proposat per a permetre la computació distribuïda:
Algunes d'aquestes extensions, tals com els objectes distribuïts i objectes protocol, són de domini específic per termes especials del tipus objectes "normals" usats en un cert context (tal com invocació remota o pila de protocols). Altres, com per exemple objectes replicats i objectes distribuïts vius, són menys estandarditzats, perquè no usen el cas que l'objecte resideix en una sola localització al mateix temps, i aplicant el concepte de grups d'entitats (repliques), que poden estendre en múltiples localitzacions i els seus membres poden canviar dinàmicament.
El Web semàntic és essencialment un marc o entorn de treball (framework) d'objectes distribuïts. El Web Ontology Language (OWL) i el Marc de Descripció de Recursos (Resource Description Framework, RDF) són dues tecnologies clau en el camp del Web semàntic. L'RDF permet definir objectes bàsics (noms, propietats, atributs, relacions) que són accessibles a través de la xarxa. L'OWL introdueix objectes més avançats que permeten herència múltiple entre altres coses.
Existeixen diferències importants entre els objectes OWL i els objectes tradicionals dels llenguatges orientats a objectes, ja que els objectes tradicionals es compilen en jerarquia estàtica i normalment amb herència simple. En canvi els objectes OWL són dinàmics i poden canviar la seva estructura en temps d'execució i esdevenir instàncies de classes diferents.
La següent taula contrasta les diferències entre els objectes tradicionals dels llenguatges orientats a objectes amb els objectes de l'OWL:[6][7]
Objectes tradicionals | Objectes del Web semàntic |
---|---|
Les classes són considerades com a tipus per les instàncies. | Les classes són considerades com a conjunts d'individus. |
Les instàncies no poden canviar el seu tipus en temps d'execució. | El seu tipus pot canviar en temps d'execució. |
La llista de classes és coneguda completament en temps de compilació i no pot canviar posteriorment. | Les classes poden ser creades i modificades en temps d'execució. |
Els compiladors es fan servir en temps de compilació i els errors indiquen problemes. | Els "Raonadors" poden ser usats per a classificar i assegurar la seva consistència tant en temps d'execució com en temps de compilació. |
Les classes codifiquen majoritàriament en funcions i mètodes imperatius. | Les classes es defineixen amb declaracions OWL i no es permet adjuntar cap codi imperatiu. |
Les instàncies són anònimes sempre que aquestes no puguin ser accedides des de l'exterior mentre s'executen. | Tots els recursos tenen un URI únic des del qual poden ser referenciats. |
Món Tancat: Si no hi ha informació suficient per a demostrar que és cert, s'assumeix que és fals. | Món Obert: Si no hi ha informació suficient per a demostrar que és cert, pot ser cert o fals.[8] |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.