Introdução ao Mundo Java

Aqui, veremos uma pincelada que o autor dá sobre assunto, o mundo Java. Passaremos por Design Patterns, Aspectos Técnicos, o que é o Java em si, frameworks etc.

[ Hits: 6.693 ]

Por: Guilherme em 30/03/2017 | Blog: http://sites.google.com/site/tecnologianapratica/


Design Patterns



Projetar software orientado a objetos é difícil, e projetar software reutilizável orientado a objetos é ainda mais difícil.

Você deve encontrar objetos pertinentes, classificá-los em classes com a granularidade correta, definir interfaces de classe e hierarquias de herança e estabelecer relações-chave entre eles. Seu projeto deve ser específico para o problema em questão, mas também geral o suficiente para resolver futuros problemas e exigências. Você também quer evitar o redesenho, ou pelo menos minimizá-lo.

Experientes designers orientados a objetos irão dizer-lhe que um design reutilizável e flexível é difícil, senão impossível de obter "certo" na primeira vez. Antes de um projeto terminar, eles geralmente tentam reutilizá-lo várias vezes, modificando-o cada vez.

No entanto, os designers experientes orientados a objetos fazem bons projetos. Enquanto isso, os novos designers estão sobrecarregados com as opções disponíveis e tendem a recorrer a técnicas não orientadas a objetos que já usaram antes.

Os novatos precisam de muito tempo para aprender o que é o bom design orientado a objetos.

Os designers experientes evidentemente sabem que algo inexperiente não. O que é isso?

Uma coisa designers especialistas não sabem fazer é resolver todos os problemas de primeiros princípios. Em vez disso, eles reutilizam soluções que funcionaram para eles no passado.

Quando encontrar uma boa solução, eles irão usá-la novamente e novamente.

Essa experiência é parte do que os torna especialistas. Consequentemente, você encontrará padrões recorrentes de classes e objetos de comunicação em muitos sistemas orientados a objetos.

Esses padrões resolvem problemas de design específicos e tornam os projetos orientados a objetos mais flexíveis, elegantes e, finalmente, reutilizáveis. Eles ajudam os designers a reutilizar projetos bem-sucedidos, baseando novos projetos em experiências anteriores. Um designer familiarizado com esses padrões pode aplicá-los imediatamente a problemas de design sem ter que redescobri-los.

Uma analogia ajudará a ilustrar o ponto. Novelistas e dramaturgos raramente desenham suas tramas a partir do zero. Em vez disso, eles seguem padrões pré estabelecidos como Macbeth, Hamlet etc ou "The Romantic Novel" (incontáveis romances).

Da mesma forma, os designers orientados a objetos seguem padrões como "representam estados com objetos" e "decoram objetos para que você possa facilmente adicionar / remover recursos". Uma vez que você conhece o padrão, muitas decisões de design seguem automaticamente.

Todos nós sabemos o valor da experiência de design. Quantas vezes você já teve o déja-vu do projeto - essa sensação que você resolveu um problema antes mas não saber exatamente onde ou como?

Se você pudesse lembrar os detalhes do problema anterior e como você resolveu, então você poderia reutilizar a experiência em vez de redescobri-la.

No entanto, não fazemos um bom trabalho de gravação de experiência em design de software para outros usarem.

Padrões de design tornam mais fácil reutilizar designs e arquiteturas.

Expressar técnicas comprovadas como padrões de design torna-os mais acessíveis aos desenvolvedores de novos sistemas.

Os padrões de design ajudam você a escolher alternativas de design que tornam um sistema reutilizável e evitam alternativas que comprometem a reutilização. Os padrões de design podem até mesmo melhorar a documentação e a manutenção dos sistemas existentes fornecendo uma especificação explícita das interações de classe e objeto e sua intenção subjacente.

Simplificando, os padrões de design ajudam um designer a obter um design "certo" mais rapidamente.

Alguns patterns que conheço ou que seria interessante colocar nesse artigo:
  • Criacional Patterns (É a existência (criação) de todas as coisas!)
  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton

Structural Patterns (Patters Estruturais):
  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Façade
  • Flyweight

Behavioral Patterns (Padrões Comportamentais):
  • Iterator
  • Observer
  • Strategy
  • Template Method

Em geral resumindo, como em outras linguagens (não cuspindo no prato) o PHP não é muito discutido isso ou não é se dado a devida importância para tal ou ainda não comporta essa tal necessidade onde em linguagens mais complexas você ter Patterns ajuda você ter um melhor sistema e mais organiza e estruturado.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Design Patterns
   3. O que é Java - Modelos de programação
   4. Aspectos Técnicos
Outros artigos deste autor

Servidor de E-mails Falido?

Leitura recomendada

Testes unitários em Java com JUnit

GCJ – Conhecendo o compilador Java Livre

Busca corporativa com Apache Solr - Motivação e conceitos

Preparando ambiente de desenvolvimento Android no Debian/Ubuntu

PDFBox - Aplicativo Java para baixar o DOU completo

  
Comentários
[1] Comentário enviado por ricardoolonca em 17/04/2017 - 20:02h

Java, ou você ama, ou você odeia. E eu odeio.
Bem, eu não sou desenvolvedor, por isso não sou a melhor pessoa para falar sobre isso. Conheço um pouco de C (e seus derivados C++, C Sharp, etc), PHP, PERL, entre outras. Mas meu foco é infraestrutura. E debugar uma aplicação feita em Java é como traduzir hieróglifos. Fala-se de Java como sendo a oitava maravilha do mundo, mas na minha opinião ele é tudo o que não devia ser. Na época em que ele surgiu prometia fazer uma aplicação rodar em qualquer dispositivo DE FORMA FÁCIL, e a portabilidade nunca foi fácil. Dá pau de versão, biblioteca, endereçamentos, etc. A única aplicação feita em java que roda bem que conheço e o IRPF (por que será?), se bem que o IRPF também é a única aplicação do governo que funciona direito.
Mas não se ofenda. Essa é a opinião de um cara velho que não é desenvolvedor e, como já disse, não sou a melhor pessoa para comentar isso. Mas Java, ou você ama, ou odeia.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts