Plain Old Java Objects

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

Plain Old Java Objects (Os Singelos Clássicos Objetos Java), ou POJOs, são objetos Java que seguem um desenho simplificado em contraposição aos EJBs, por exemplo. Um JavaBean é um POJO que segue definições rígidas de estrutura (construtor default sem argumentos e métodos que seguem o padrão de getters e setters para seus atributos).

Este padrão é baseado na idéia de que quanto mais simples o projeto, melhor. O termo foi inventado por Martin Fowler, Rebecca Parsons e Josh MacKenzie em Setembro de 2000. "Nós queríamos saber porque as pessoas eram contra o uso de objetos regulares em seus sistemas e concluímos que era devido a falta de um nome extravagante para eles. Assim nós demos-lhes um, e funcionou muito bem.". O termo segue o padrão de atribuir um nome para tecnologias que não possuem nenhuma característica nova, como POTS (Plain Old Telephone Service).

O termo ganhou aceitação por causa da necessidade de um termo comum e facilmente inteligível que contrasta com complicados frameworks de objetos. É mais atrativo do que o termo bean do Java devido à confusão gerada pela semelhança dos termos JavaBeans e os EJB (Enterprise JavaBeans). O primeiro é predominantemente um POJO que segue rigorosas convenções para nomear métodos, e o último é um modelo de componente (EJB 3 reduz o grau de diferença entre eles).

Exemplo[editar | editar código-fonte]

Este exemplo mostra uma classe POJO que segue o padrão JavaBean.

public class Carro implements java.io.Serializable {  

        private String nome;

        private String cor;

        public Carro() {
        }

        public Carro(String nome, String cor) {
             this.nome = nome;
             this.cor = cor;
        }

        public String getCor() {
             return cor;
        }

        public void setCor(String cor) {
             this.cor = cor;
        }

        public String getNome() {
             return nome;
        }

        public void setNome(String nome) {
             this.nome = nome;
        }
}