PARADIGMA DE ORIENTAÇÃO A
OBJETOSAndré Victor S. M dos Santos
• CONCEITO GERAL
Na Programação Orientada a Objetos, a aplicação é vista como uma rede dinâmica de objetos colaboradores que permite aos desenvolvedores de software administrar mais facilmente, a complexidade do domínio do problema, permitindo desenvolver softwares mais flexíveis, mais fáceis de se manutenir, além de melhorar as possibilidades de reusabildiade de código;
Deste modo, utilizando o paradigma Orientado a Objetos, modelamos e construímos sistemas, baseado nos objetos que compõem o mesmo.
• IDEIA DA POO
A POO foi criada para tentar aproximar o mundo real do mundo virtual: a ideia fundamental é tentar simular o mundo real dentro do computador. Para isso, nada mais natural do que utilizar Objetos que recebem mensagens.
OBJETOS: O programador explica como os objetos devem interagir entre si. Os objetos
"conversam" uns com os outros através do envio de mensagens, e o papel principal do programador é especificar quais serão as mensagens que cada objeto pode receber, e também qual a ação que aquele objeto deve realizar ao receber aquela mensagem em específico.
MENSAGENS: é um pequeno texto que os objetos conseguem entender e, por questões
técnicas, não pode conter espaços. Junto com algumas dessas mensagens ainda é possível passar algumas informações para o objeto (parâmetros), dessa forma, dois objetos conseguem trocar informações entre si facilmente.
• ENTENDENDO A POO
Formalmente, para ser considerada uma linguagem OO, essa precisa implementar quatro conceitos básicos:
Abstração; Classe; Encapsulamento; Herança e Polimorfismo.
• ABSTRAÇÃO: Nesse contexto a abstração refere-se à capacidade de modelar o
mundo real, e por outro lado, podemos considerá-la como um mecanismo pelo qual restringimos o nosso universo de análise e as variáveis e constantes que compõem esse universo, desprezando os dados que não nos interessa na análise;
Quando fechamos os olhos e pensamos em uma mesa; esta mesa imaginária provavelmente não vai ser igual à uma outra imaginada por outras pessoas, mas o que importa é que todos as pessoas que imaginaram uma mesa, colocaram nessa as informações que para elas são necessárias para a sua função (de ser uma mesa).
• CLASSE:
Uma classe é uma abstração que define um tipo de objeto e o que objetos deste determinado tipo tem dentro deles (seus atributos) e também define que tipo de ações esse tipo de objeto é capaz de realizar (métodos);
Uma classe descreve um conjunto de objetos com as mesmas propriedades, o mesmo comportamento, os mesmos relacionamentos com outros objetos e a mesma semântica.
• ENCAPSULAMENTO: Contribui fundamentalmente para diminuir os malefícios
causados pela interferência externa sobre os dados. Partindo desse princípio, toda e qualquer transação feita com esses dados só pode ser feita através de procedimentos colocados "dentro" desse objeto, pelo envio de mensagens;
Desta maneira, dizemos que um dado está encapsulado quando envolvido por código de forma que só é visível na rotina onde foi criado; o mesmo acontece com uma rotina, que sendo encapsulada, suas operações internas são invisíveis às outras rotinas.
• HERANÇA:
É um mecanismo que, se for bem empregado, permite altos graus de reutilização de código;
Do ponto de vista prático, pode ser entendido como sendo um conjunto de instâncias criadas a partir de um outro conjunto de instâncias com características semelhantes, e os elementos desse subconjunto herdam todas as características do conjunto original;
A ideia é fornecer um mecanismo simples (mas muito poderoso) para que se defina novas classes a partir de uma já existente.
• POLIMORFISMO:
É definido como sendo um código que possui "vários comportamentos" ou que produz "vários comportamentos";
Em outras palavras, é um código que pode ser aplicado à várias classes de objetos.
De maneira prática isto quer dizer que a operação em questão mantém seu comportamento transparente para quaisquer tipos de argumentos; isto é, a mesma mensagem é enviada a objetos de classes distintas e eles poderão reagir de maneiras diferentes
PERSISTÊNCIA DE DADOS VIA JDBC
• PERSISTÊNCIA DE DADOS
A função de um sistema de gerenciamento de banco de dados é permitir o acesso e a atualização simultâneos de bancos de dados persistentes. A fim de garantir a persistência dos dados a longo prazo, os sistemas de gerenciamento de banco de dados utilizam várias estratégias de recuperação em caso de falhas na transação, no sistema ou no meio
• JAVA DATABASE CONNECTIVITY
A Java Database Connectivity (JDBC) é uma tecnologia que oferece uma API baseada em Java para acesso a bases de dados e outras fontes de dados relacionais. Usando esta API, um programa pode consultar e modificar dados numa base de dados, com suporte a transações ACID;
A API permite ao programador controlar vários aspectos da interação com a base de dados local, incluindo a gestão de transações no âmbito de transações distribuídas através da interface XA (begin, prepare, commit, abort).
• A CONEXÃO EM JAVA Para evitar que cada banco tenha a sua própria API e conjunto de
classes e métodos, temos um único conjunto de interfaces muito bem definidas que devem ser implementadas. Esse conjunto de interfaces fica dentro do pacote java.sql e nos referiremos a ela como JDBC;
Entre as diversas interfaces deste pacote, existe a interface Connection que define métodos para executar uma query, comitar transação e fechar a conexão, entre outros;
Caso queiramos trabalhar com o MySQL, precisamos de classes concretas que implementem essas interfaces do pacote java.sql.
CLASSES CONCRETAS:
Esse conjunto de classes concretas é quem fará a ponte entre o código cliente que usa a API JDBC e o banco de dados. São essas classes que sabem se comunicar através do protocolo proprietário do banco de dados. Esse conjunto de classes recebe o nome de driver;
Para abrir uma conexão com um banco de dados, precisamos utilizar sempre um driver. A classe DriverManager é a responsável por se comunicar com todos os drivers que você deixou disponível. Para isso, invocamos o método estático getConnection com uma String que indica a qual banco desejamos nos conectar.