A inveja mata!

Você já ouvir falar no ditado popular “A inveja mata!”. Na orientação a objetos também acontece. Só que ela não mata, mas deixa o projeto de design de classes péssimo e bem inflexível. Segue abaixo um exemplo clássico:

sem-titulo

Veja a classe Venda, que classe invejosa, acessando o atributo da classe Cliente para fazer uma validação. Isso é um erro bem comum de programação orientada a objetos chamado de inveja de dados. Segue uma breve descrição:

Inveja dos Dados

Ocorre quando um objeto usa dados de outros objetos para fazer operações ou lógicas, fazendo com que o objeto fique mais interessado no estado de outro do que o seu próprio estado. A essência dos objetos é encapsular tanto os dados e as operações que manipulam esses dados. Diante disso, você deve atribuir as responsabilidades a um objeto que seja o mais coerente com suas informações e nunca para um objeto externo. Inveja dos dados é um anti-padrão conhecido com Anemic Domain Model.

O correto seria a classe Cliente oferecer um método que respondesse para a classe Venda, sem a necessidade de acessar seu atributo. Segue a correção:

sem-titulo2

Gostaria de aprender essa e outras dicas de programação orientada a objetos com Java? Veja nosso curso ead JSE M1 – Programador Java Básico. Eu te aguardo por lá🙂 ! Uma semana abençoada para todos!

“Pois a lei inteira se resume em um mandamento só: ‘Ame os outros como você ama a você mesmo.'” Gálatas 5:14