quinta-feira, 27 de março de 2008

Aula 15 e 16 de Projetos Orientado a Objetos

Alta Coesão

Verificar se uma classe esta realmente dentro de seu foco, é verificarmos a coesão dela. Para sabermos se uma classe esta coesa, devemos analisar o quão focada ou relacionada estão relacionados os módulos de uma classe. Quando uma classe esta coesa, falamos que tem um a alta coesão, quando não, falamos que esta com baixa coesão, dificultando o entendimento, o reuso e sua manutenção entre outros pontos.

Tipos de Coesão:

*Concidental
*Lógica
*Temporal
*Procedural
*De Comunicação
*Seqüencial
*Funcional

Concidental: estão agrupadas por mera coincidência, não existe nenhuma coesão entre os módulos.

Lógica: Semelhante ao acoplamento de controle, quando existe um controle entre os módulos.

Temporal: os módulos estão coesos, apenas, por algum evento de tempo.

Procedural: faz com que os módulos que estão acoplados por procedimentos, porém os procedimentos nem sempre estão coesos.

De Comunicação: Quando dois ou mais métodos manipulam o mesmo dado, porém não existe significado entre eles, e eles se encontram juntos.

Seqüencial: Quando vários métodos ocorrem seqüencialmente, ou seja, quando a entrada de um é a saída do outro.

Funcional: Quando todos os métodos estão coesos e trabalhando em busca do mesmo objetivo.

Controller (Controlador)

Controlador é um objeto responsável pelo tratamento de eventos do sistema, ele quem define métodos para as operações.
Dentro do MCV (Model, Controller, View) que é a programação em três camadas, ele se encontra na camada central, fazendo a ponte entre as operações de sistema e os métodos que são as classes.

quinta-feira, 20 de março de 2008

Aula 13 e 14 de Projetos Orientado a Objetos

- Tipos de Acoplamento

Dentro da ordem de acoplamento temos, Acoplamento de dados, Acoplamento de controle, acoplamento de dados globais e acoplamento de dados internos. Vamos estar falando um pouco sobre cada um desses nesta postagem.
O acoplamento de dados que na listagem é considerado o melhor, consiste em existir duas classes onde uma passa um objeto como parâmetro para a outra, assim havendo uma mudança no objeto passado por parâmetro, automaticamente ira influenciar nas outras classes.
Acoplamento de controle é quando uma classe passa um objeto de controle para a outra, ou seja, passar flags como parâmetro para definir e controlar o que a outra classe ira realizar.
Acoplamento de dados globais, a forma mais conhecida disso são as variáveis globais, pois é onde vários objetos compartilham o mesmo dado.
Acoplamento de dados internos é quando um determinado objeto de uma classe altera dados locais de uma outra, isso geralmente ocorre quando usado métodos públicos e protegidos, é aconselhado utilizar métodos privados onde existam outra para entrada e saída de dados desse método.

quinta-feira, 13 de março de 2008

Aula 9,10,11 e 12 de Projetos Orientado a Objetos

- Baixo Acoplamento

Para entendermos melhor Acoplamento vamos descrever seu significado. Acoplamento é a forma de se medir o quanto uma classe esta ligada a outra, ou melhor dizendo, o quanto uma determinada classe depende de uma outra. Com este conceito nos faz lembrar de Herança, e é exatamente isso, a herança é um grande exemplo de acoplamento forte. Agora surge então um novo questionamento, “Qual a diferença de acoplamento Fraco(Baixo) e Acoplamento Forte(Alto)?”, a diferença é que o baixo não tem muitas dependências, ou seja, não depende de muitas outras classes e o acoplamento forte é o contrario disso.
Uma situação que nos vale a ressaltar é, a questão de forte acoplamento. Uma classe forte acoplada implica em algumas situações desfavoráveis, que são: difícil entendimento quando ela sozinha, difícil reutilização, ou seja, limita a dinâmica do código e uma outra situação é que fica sensível às mudanças ocorridas nas classes de que ela depende, assim qualquer mudança realizada nas outras classes ira influenciar.
Uma forma de trabalhar mais dinamicamente e reaproveitando mais as classes, é minimizar ao Maximo o acoplamento, ou seja, quanto mais baixo acoplada estiver suas classes, mais irão ser reaproveitadas.
Podemos citar ainda alguns tipos de acoplamento em ordem do “melhor” para o “pior”: Acoplamento de dados à Acoplamento de Controle à Acoplamento de Dados Globais à Acoplamento de Dados Internos.