Tag: OOP

Boas práticas de Programação Orientada a Objetos – Semântica

Programação Orientada a Objetos - O que é um ObjetoQuando pensamos no conceito de Programação Orientada a Objetos – POO (na realidade é um paradigma) – é comum haver certa confusão sobre do isso realmente se trata.

Entender o conceito de Objetos, no contexto da programação e da modelagem, é fundamental para se entender “de fato” o que é Polimorfismo, Herança, Abstração e Encapsulamento, que formam a base da POO.
(more…)

Relacionamento entre Classes – Composição

Relacionamento de Composição entre Classes - Composição - Corpo HumanoComposição no Corpo Humano

Vamos entender o relacionamento de composição entre classes através de uma analogia com o corpo humano.

O que é o corpo humano? É um sistema.

Do ponto de vista Conceitual, como um software, podemos interpretá-lo composto de Módulos, Domínios, Funcionalidades, Requisitos Funcionais, Requisitos Não Funcionais e Regras de Negócio.

Do ponto de vista Estrutural, também como um software, podemos interpretá-lo como um Namespace ou Pacotes, composto de Classes, classes compostas por outras classes, todas com seus métodos etc.

Uma Mão é composta por Dedos. Podemos entender a Mão como uma Classe, do Namespace Braço, e a classe Mão possui cinco composições da classe Dedo.

Uma mão comum é composta por cinco dedos: Polegar, Indicador, Médio, Anelar, Mindinho).

(more…)

Dependência entre Classes

Você fez uma alteração em algum sistema, e na hora de compilar viu que a IDE (Visual Studio, Eclipse) gerou um monte de erros que não existiam antes? E quando foi analisar os erros, percebeu que houve quebra em vários pontos do sistema, devido a incompatibilidade entre classes?

Dependência entre Classes – isso precisa ser avaliado.

Dependência entre Classes - Erro de Compilação - Visual Studio

Muitas vezes, uma simples exclusão de um atributo de uma classe pode gerar dezenas de quebras no sistema, inviabilizando a compilação, e demandando refatoração.

A causa disso é que há relacionamento de dependência entre as classes contidas na estrutura do sistema.

Neste contexto – devido ao acoplamento entre estas classes – dependendo da alteração realizada em uma classe, pode haver efeito colateral em várias outras que dependem dela.
(more…)

Principio Open/Closed – SOLID – OCP

solid-open-closed

O Princípio OCP (Open/Closed Principle) é um princípio do SOLID.

O Princípio é de que no software, o código deve ser aberto para extensão, mas fechado para alteração.

Mas o que isso quer dizer? Vamos entender melhor neste post.

Todo software é dinâmico, evolui constantemente durante sua vida. Uma hora o software “morre”, torna-se obsoleto e para de evoluir. Geralmente é substituído por outro software.

Essa evolução se dá através da manutenção no software.
(more…)