Design Patterns usar ou não?

Olá, já faz algum tempo que não posto nada no blog, hoje vou escrever um pouco sobre Design Patterns.

Pra quem não conhece ainda muito bem sobre o assunto, Design Patterns são soluções para determinados problemas usadas repetidas vezes  que foram desenvolvidas por programadores experientes que obviamente se depararam com esses problemas também repetidas vezes, por isso é recomendável o uso dos Patterns.

Já li bastante sobre o assunto e implementei muitos patterns, confesso que não dominei todos os principais ainda completamente mas pretendo.

No início alguns Patterns podem parecer que mais complica do que ajuda, mas após um tempo que usamos os Patterns e entendemos melhor, percebemos que não é bem assim.

Os conceitos chaves dos Patterns são desacoplamento e coesão, ou seja, o código fica escalável e com fácil manutenibilidade. Polimorfismo e abstração são extremamente usados, além dos conceitos de orientação a objetos.

Por isso quando forem estudar Design Patterns preparem-se pra verem muitas interfaces e classes abstratas.

Existem muitos patterns mas os principais são os que foram publicados no livro Design Patterns: Elements of Reusable Object-Oriented Software pela Gang of Four, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides,

Padrões de criação
Padrões estruturais
Padrões comportamentais

Para o uso de cada Pattern o problema deve ser analisado, nem sempre o uso de um Pattern é o ideal se seu uso for incorreto.

Caso o Pattern seja implementado para um problema que não seja adequado, a implementação do código só terá sua complexidade aumentada e dificilmente trará vantagens de uso.

É extremamente importante o domínio dos patterns pois usam todo o poder do paradigma de orientação a objetos, conhecê-los é fundamental.

 

 

 

 

Design Patterns usar ou não?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s