30.06.2013 Views

Apostila Java

Apostila Java

Apostila Java

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

INTERFACES GRÁFICAS BASEADAS EM BEHAVIOR ISMO (SWING)<br />

GOF, Addison-Wesley: 1995). Nesta publicação, os autores Erich Gamma, Richard Helm, Ralph Johnson<br />

e John Vlissides identificaram padrões no desenvolvimento de sistemas industriais, ou seja, observaram<br />

que vários programadores acabavam gerando soluções muito semelhantes para os problemas mais<br />

freqüentes no desenvolvimento de programas de computador. Detectaram também que o<br />

desenvolvimento de tais projetos exigia um grande esforço de reflexão acerca da ontologia dos<br />

problemas, consumindo muito tempo para ser desenvolvido e com a qualidade vinculada à experiência<br />

dos analistas responsáveis pelo projeto. Por essa razão, a gangue dos quatro resolveu documentar os<br />

padrões mais usados, permitindo aos novos programadores e analistas a redução do tempo necessário<br />

para identificar os aspectos centrais dos problemas mais comuns em computação. Ao todo, foram<br />

detectados 23 padrões de comportamento na modelagem de sistemas, subdivididos em três grandes<br />

grupos:<br />

?? Creational design patterns – relacionado à instanciação dos objetos ou grupos de objetos. Por<br />

exemplo, um sistema pode necessitar limitar o número de instâncias ativas de uma determinada<br />

classe ou então permitir que as características de uma classe sejam definidas em tempo de<br />

execução. Padrões definidos: Abstract factory, Builder, Factory Method, Prototype<br />

e Singleton.<br />

?? Structural design patterns – associado à relação entre as classes de um projeto, ou seja, a<br />

comunicação entre elas, ordem em que os objetos são instanciados, etc. Padrões definidos:<br />

Adapter, Bridge, Composite, Decorator, Facade, Flyweight e Proxy.<br />

?? Behavioral design patterns – estudo do comportamento dos objetos em relação ao seu meio<br />

ambiente, tratando isoladamente as características de um objeto e o seu comportamento. Grande<br />

parte dos componentes Swing foram implementados usando o padrão behaviorista chamado<br />

Observer, que iremos descrever com mais detalhes na próxima seção. Padrões definidos: Chainof-responsability,<br />

Command, Interpreter, Iterator, Mediator, Meme nto,<br />

Observer, State, Strategy, Template e Visitor.<br />

O termo design pattern, embora possa ser literalmente traduzido como padrão de projeto, deve<br />

ser visto como um jargão tecnológico, ou seja, usado em inglês, mesmo por falantes nativos de outras<br />

línguas. Além disso, o estudo de design patterns tornou-se referência de qualidade para todo profissional<br />

de informática. É indispensável que o aluno leia algum material completo sobre o assunto, que será<br />

retomado com mais profundidade na disciplina de Sistemas Orientados a Objetos II.<br />

Programação behaviorista - o paradigma modelo-visãocontrole<br />

(MVC)<br />

O termo behaviorismo remete à idéia de ação e reação, adotada por alguns estudiosos da mente<br />

(psicólogos, psiquiatras, etc.) como teoria de formalização do comportamento humano. A idéia é bem<br />

simples: você tem uma entidade que reage aos estímulos do meio ambiente, como por exemplo, uma<br />

pessoa gritar quando recebe um choque elétrico, uma bola se mover quando é chutada, uma lâmpada<br />

acender quando o seu interruptor é ligado, etc.<br />

No ser humano, esse conceito é um tanto quanto polêmico, pois não se pode afirmar o quanto do nosso<br />

comportamento é puramente behaviorista e o quanto é de natureza emocional, ainda pouco conhecida.<br />

Já em entidade artificiais, como componentes de programação, o reflexo condicionado é perfeitamente<br />

aplicável, pois todos os estímulos e reações de um componente serão previamente conhecidos, não<br />

havendo espaço para reações anômalas, de natureza emocional ou caótica.<br />

110

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!