Programación orientada a obxectosA programación orientada a obxectos (POO ou OOP segundo as súas siglas en inglés) é un paradigma de programación que usa obxectos e as súas interaccións para deseñar aplicacións e programas de ordenador. Baséase en varias técnicas, incluíndo herdanza, modularidade, polimorfismo, e encapsulamento. O seu uso popularizouse a principios da década de 1990. Actualmente varias linguaxes de programación soportan a orientación a obxectos. IntroduciónOs obxectos son entidades que combinan estado, comportamento e identidade. O estado está composto de datos, e o comportamento por procedementos ou métodos. A identidade é unha propiedade dun obxecto que o diferenza do resto. A programación orientada a obxectos expresa un programa como un conxunto destes obxectos, que colaboran entre eles para realizar tarefas. Isto permite facer os programas e módulos máis fáciles de escribir, manter e reutilizar. Desta maneira, un obxecto contén toda a información que permite definilo e identificalo fronte a outros obxectos pertencentes a outras clases ou fronte a obxectos dunha mesma clase, ao poder ter valores ben diferenciados nos seus atributos. Á súa vez, os obxectos dispoñen de mecanismos de interacción chamados métodos que favorecen a comunicación entre eles. Esta comunicación favorece á súa vez o cambio de estado nos propios obxectos. Esta característica leva a tratalos como unidades indivisibles, nas que non se separan nin deben separarse estado e comportamento. Os métodos e atributos están estreitamente relacionados pola propiedade de conxunto. Esta propiedade destaca que unha clase require de métodos para poder tratar os atributos cos que conta. O programador debe pensar indistintamente en ambos os dous conceptos, sen separar nin darlle maior importancia a ningún deles. Facelo podería resultar en seguir o hábito erróneo de crear clases colectoras de información por unha banda e clases con métodos que a manexen polo outro. Deste xeito estaríase chegando a unha programación estruturada camuflada nunha linguaxe de programación orientado a obxectos. Isto difire da programación estruturada tradicional, na que os datos e os procedementos están separados e sen relación, xa que o único que se busca é o procesamento duns datos de entrada para obter outros de saída. A programación estruturada anima ao programador a pensar sobre todo en termos de procedementos ou funcións, e en segundo lugar nas estruturas de datos que eses procedementos manexan. Na programación estruturada só se escriben funcións que procesan datos. Os programadores que empregan este novo paradigma, en cambio, primeiro definen obxectos para logo enviarlles mensaxes solicitándolles que realicen os seus métodos por si mesmos. OrixeOs conceptos da programación orientada a obxectos teñen a súa orixe en Simula 67, unha linguaxe deseñada para facer simulacións, creado por Ole-Johan Dahl e Kristen Nygaard do Centro de Cómputo Noruegués en Oslo. Segundo se informa, a historia é que traballaban en simulacións de naves, e foron confundidos pola explosión combinatoria de como as diversas calidades de diversas naves podían afectar unhas ás outras. A idea ocorreu para agrupar os diversos tipos de naves en diversas clases de obxectos, sendo responsable cada clase de obxectos de definir os seus propios datos e comportamento. Foron refinados máis tarde en Smalltalk, que foi desenvolvido en Simula en Xerox PARC (e cuxa primeira versión foi escrita sobre Basic) pero deseñado para ser un sistema completamente dinámico no cal os obxectos poderíanse crear e modificar "en marcha" no canto de ter un sistema baseado en programas estáticos. A programación orientada a obxectos posicionouse como o estilo de programación dominante a mediados dos anos oitenta, en gran parte debido á influencia de C++ , unha extensión da linguaxe de programación C. O seu dominio consolidouse grazas ao auxe das Interfaces gráficas de usuario, para as cales a programación orientada a obxectos está particularmente ben adaptada. Neste caso, fálase tamén de programación dirixida por eventos. As características de orientación a obxectos foron agregadas a moitas linguaxes existentes durante ese tempo, incluíndo Ada, BASIC, Lisp, Pascal, entre outros. A adición desas características ás linguaxes que non foron deseñados inicialmente para elas causou moitas veces problemas de compatibilidade e mantemento do código. As linguaxes orientadas a obxectos "puros", por outra banda, carecían das características das cales moitos programadores viñeran a depender. Para saltar este obstáculo, fixéronse moitas tentativas para crear novas linguaxes baseadas en métodos orientados a obxectos, pero permitindo algunhas características imperativas de xeitos "seguros". A Eiffel de Bertrand Meyer foi unha temperán e moderadamente acertada linguaxe con eses obxectivos pero agora foi esencialmente substituído por Java, en gran parte debido á aparición de Internet, e á implementación da máquina virtual de Java na maioría de navegadores. PHP na súa versión 5 foise modificando e soporta unha orientación completa a obxectos, cumprindo todas as características propias da orientación a obxectos. Conceptos fundamentaisA programación orientada a obxectos é unha nova forma de programar que trata de atopar unha solución a estes problemas. Introduce novos conceptos, que superan e amplían conceptos antigos xa coñecidos. Entre eles destacan os seguintes:
En comparación cunha linguaxe imperativa, unha "variable", non é máis que un colector interno do atributo do obxecto ou dun estado interno, así como a "función" é un procedemento interno do método do obxecto. Características da POOHai un certo desacordo sobre exactamente que características dun método de programación ou linguaxe defínenlle como "orientado a obxectos", pero hai un consenso xeral en que as características seguintes son as máis importantes (para máis información, seguir enlácelos respectivos):
Linguaxes orientadas a obxectosEntre as linguaxes orientadas a obxectos destacan os seguintes:
Moitas destas linguaxes de programación non son puramente orientadas a obxectos, senón que son híbridos que combinan a POO con outros paradigmas. Do mesmo xeito que C++ outras linguaxes, como OOCOBOL, OOLISP, OOPROLOG e Object REXX, foron creados engadindo extensións orientadas a obxectos a unha linguaxe de programación clásico. Un novo paso na abstracción de paradigmas de programación é a Programación Orientada a Aspectos (POA). Aínda que é aínda unha metodoloxía en estado de maduración, cada vez atrae a máis investigadores e ata proxectos comerciais en todo o mundo. Tamén é necesario recalcar que na programación orientada a obxectos é factible de utilizar en JavaScript. Véxase tamén
Outros artigos |
Portal di Ensiklopedia Dunia