PHP soporta la creación de clases, objetos, herencia, interfaces, clases abstractas, y muchos otros conceptos que quizás te resulten abrumadores o complicados en este momento. Pero si me sigues a lo largo de las siguientes lecciones, te prometo que pasarán a ser conceptos familiares que podrás usar cada vez que programes con PHP y sobretodo si estás trabajando con un framework como Laravel. Puesto que Symfony, Laravel y todos los principales frameworks de PHP hacen uso extenso de todas estas características de la programación orientada a objetos.
Curso Work Series PHP Orientado A ObjetosCurso Work Series PHP Orientado A Objetos
Como a maioria das atividades que fazemos no dia a dia, programar também possui modos diferentes de se fazer. Esses modos são chamados de paradigmas de programação e, entre eles, estão a programação orientada a objetos (POO) e a programação estruturada. Quando começamos a utilizar linguagens como Java, C#, Python e outras que possibilitam o paradigma orientado a objetos, é comum errarmos e aplicarmos a programação estruturada achando que estamos usando recursos da orientação a objetos.
Alguns problemas aparecem com tanta frequência em POO que suas soluções se tornaram padrões de design de sistemas e modelagem de código orientado a objeto, a fim de resolvê-los. Esses padrões de projeto, (ou design patterns) nada mais são do que formas padronizadas de resolver problemas comuns em linguagens orientadas a objetos. O livro "Design Patterns", conhecido como Gof:Gang of Four, é a principal referência nesse assunto, contendo os principais padrões usados em grandes projetos. A Alura também oferece cursos de Design Patterns em linguagens de programação como Java, Python e C#.
7 Em um sistema orientado a objeto bem desenvolvido, é possível implementar mudanças em nível de classe, sem ter que realizar alterações em outros pontos do sistema. Isto reduz a quantidade total de manutenção requerida. Através do polimorfismo e herança, a programação orientada a objeto permite a reutilização de componentes individuais. Em um sistema orientado a objeto, a quantidade de trabalho de manutenção e revisão envolvido é reduzida, já que muitos problemas podem ser detectados e corrigidos em fase de projeto. Para atingir estes objetivos requer: Linguagens de programação orientada a objetos Técnicas de programação orientadas a objeto não necessariamente dependem em linguagens de programação orientada a objeto. No entanto, a eficiência da programação orientada a objeto depende diretamente de como as técnicas de programação orientada a objetos são implementadas no sistema kernel. Ferramentas de orientação a objeto Ferramentas de orientação a objeto permite que se crie programas orientados a objetos em linguagem orientada a objetos. Eles permitem que se modele e guarde objetos e relações entre eles. Modelagem orientada a objeto A modelagem orientada a objeto de um sistema de software é o mais importante, mais demorado, e o requerimento mais difícil para alcançar acima dos objetivos. Design orientado a objeto envolve mais do que apenas programação orientada a objeto, e fornece vantagens lógicas que são independentes da verdadeira implementação. Esta seção do guia do usuário ABAP fornece uma visão geral da extensão orientada a objeto da linguagem ABAP. Nós temos usado apenas exemplos simples para demonstrar como se utilizam as novas ferramentas. No entanto, estas pretendem ser um modelo para design orientado a objeto. Mais informação detalhada sobre cada dos comandos dos objetos ABAP é contida na documentação de palavras chaves no editor ABAP. Para uma introdução compreensiva ao desenvolvimento de software orientado a objeto, você deve ler um ou mais títulos listados abaixo. Leitura Posterior Há muitos livros sobre orientação a objeto, linguagem de programação orientado a objeto, análise orientada a objeto e design, gerenciamento de projeto para projetos OO, padrões e frameworks, e muitos outros. Esta é uma pequena seleção de bons livros cobrindo os tópicos principais: Scott Ambler, The Object Primer, SIGS Books & Multimedia (1996), ISBN: Uma introdução muito boa à orientação a objetos para programadores. Ele fornece explicações compreensivas de todas as essências dos conceitos OO, e contém um modo de aprendizagem muito rápido e eficiente. É fácil e prático de se ler, mas totalmente baseado em teoria. Grady Booch, Object Solutions: Managing the Object-Oriented Project, Addison- Wesley Pub Co (1995), ISBN: /70
8 Um bom livro sobre todos os aspectos não técnicos de OO que são igualmente importantes para uma efetiva programação orientada a objeto. Fácil de ler e cheio de dicas práticas. Martin Fowler, UML Distilled: Applying the Standard Object Modeling Language, Addison-Wesley Pub Co (1997), ISBN: Um excelente livro sobre UML (Modelagem de Linguagem Unificada a nova liguagem padronizada OO e notações para modelagem). Assume conhecimento anterior e experiência em orientação a objeto. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns. Elements of Reusable Object-Oriented Software, Addison-Wesley Pub Co (1998), ISBN: Fornece um padrão, mostrando como problemas de design recorrentes podem ser resolvidos utilizando objetos. Este é o primeiro grande livro padrão, contendo muitos exemplos de bom design OO. James Rumbaugh, OMT Insights: Perspectives on Modeling from the Journal of Object-Oriented Programming, Prentice Hall (1996), ISBN: Uma coleção de artigos endereçando muitas perguntas e problemas de análise e design OO, implementação, gerenciamento de dependência, e muitos outros. Altamente recomendado. Notas Se você é novo a orientação a objetos, você deveria ler Scott Ambler s The Object Primer e então adquirir alguma experiência prática você próprio. Você deve definitivamente utilizar as técnicas CRC descritas por Ambler e Fowler para análise e design orientados a objeto. Após isso, você deve aprender UML, já que este é a análise e design OO universal. Finalmente, você deve ler pelo menos um dos livros sobre padrões. No início de um grande projeto OO, as questões imediatamente emergem sobre como a seqüência que as coisas devem ser feitas, quais fases devem terminar e a qual hora, como dividir e organizar o trabalho de desenvolvimento, como minimizar riscos, como montar uma boa equipe, e assim continua. Muitas das melhores práticas em gerenciamento de projetos tiveram que ser redefinidas para o mundo orientado a objeto, e as oportunidades que isto produz são significantes. Para mais informações sobre como utilizar, veja o livro de Grady s Brooch Object Solutions, ou o capítulo intitulado An outline development process do livro de Martin Fowler. Há, claro, muitos outros livros bons sobre orientação a objeto. Os acima listados não clamam estarem totalmente completos, ou necessariamente os melhores livros disponíveis. 8/70
9 O que são Objetos ABAP? Objetos ABAP são um novo conceito do R/3 Release 4.0. O termo tem dois conceitos. No primeiro, os objetos compõem todo o ambiente de tempo de execução ABAP. No segundo, ele representa a extensão orientada a objeto da linguagem ABAP. O ambiente de tempo de execução O novo nome ABAP Objects para todo o ambiente de tempo de execução é uma indicação do modo que o SAP R3 tem, por algum tempo, movendo em direção a orientação a objeto, e de seu compromisso em perseguir esta linha. O ABAP Workbench permite que você crie objetos R/3 Repository, como programas, objetos de autorização, objetos de travamento, objetos de customizing, e muitos outros. Usando módulos de funções, você pode encapsular funções em programas separados com uma interface definida. O Business Object Repository (BOR) permite que você cria SAP Business Objects para uso interno e externo (DCOM/CORBA). Até agora, as técnicas de orientação a objeto têm sido usadas exclusivamente em projeto de sistemas, e ainda não foram suportadas pela linguagem ABAP. A extensão da linguagem orientada a objeto Objetos ABAP são um conjunto completo de comandos que foram introduzidos dentro da linguagem ABAP. Esta extensão orientada a objeto constrói sobre a linguagem existente, sendo totalmente compatível com ela. Você pode utilizar objetos ABAP em já programas existentes, e pode também usar o ABAP convencional em novos objetos de programas ABAP. Objetos ABAP suporta programação orientada a objeto. Orientação a objeto (OO), também conhecida como paradigma orientado a objeto, é um modelo de programação que une dados e funções em objetos. O resto da linguagem ABAP é primeiramente intencionado para programação estruturada, onde os dados são guardados em tabelas de banco de dados e programas orientados por funções acessam e trabalham com eles. A implementação do modelo orientado a objeto do ABAP é baseado em modelos de Java e C++. É compatível com objetos externos como DCOM e CORBA. A implementação de elementos orientados a objeto no kernel da linguagem ABAP tem aumentado consideravelmente o tempo de resposta quando se trabalha com objetos ABAP. SAP Business Objects e objetos GUI vão também lucrar de serem incorporados nos objetos ABAP. De Grupos de Funções a Objetos No centro de qualquer modelo orientado a objeto estão os objetos, que contém atributos (dados) e métodos (funções). Objetos deveriam permitir programadores a mapear um problema real e soluções propostas do software em uma base um-por-um. Objetos típicos no ambiente de negócios são, por exemplo, consumidor, ordem, ou pedido. Do release 3.1 em diante, o Business Object Repository (BOR) contém exemplos de tais objetos. O objeto modelo dos objetos ABAP, a extensão orientada a objeto do ABAP, são compatíveis com o objeto modelo do BOR. Antes do R/3 Release 4.0, o que existia mais próximo de objetos no ABAP eram módulos de funções e grupos de funções. Suponha que tenhamos um grupo de funções para processar ordens. Os atributos de uma ordem correspondem aos dados globais do grupo de função, enquanto os módulos de funções individuais representam ações que manipulam aqueles dados (métodos). Isto significa que a verdadeira ordem dos dados é encapsulada no grupo de funções. Deste modo, os módulos de funções podem garantir que os dados são consistentes. 9/70 2ff7e9595c
Comentarios