Patterns – Fundamental

Patterns Add comments

Os Padrões de projeto fundamentais são padrões básicos, e é extremamente necessário conhecê-los e entendê-los, pois são usados extensivamente por outros patterns.

Nesta seção, serão definidos os patterns:

Delegation
Interface
Abstract Superclass
Interface & Abstract Superclass
Immutable
Marker Interface
Proxy

Delegation

Basicamente é que ao invés de extender uma classe para incrementar suas funcionalidades você simplesmente USA ela em outro objeto.

Interface

Quando se quer criar independência de um serviço específico, como por exemplo criar um camada de acesso a diversos bancos de dados, as interfaces auxiliam a abstrair, criando um contrato, onde não importa qual seja, qualquer classe que queira implementar o serviço, só precisa cumprir os contratos (definir os métodos).

Abstract Superclass

Se há duas classes que possuem código em comum, você pode agrupar este código refatorando e colocando em uma superclasse o código repetido, e, ambas as subclasses extenderem a superclasse, implementando ali suas particularidades.

Interface & Abstract Superclass

Porquê usar somente um dos padrões se você pode ser mais organizado e eficiente e usar ambos? Use Interface para abstrair a classe que implementa um serviço, e forneça uma classe abstrata com as funcionalidades base.

Immutable

Como o próprio nome já diz em inglês, imutável.

Marker Interface

Uma interface que não declara nenhum método ou variável e é usada para indicar atributos de classes que as implementam. Um bom exemplo é a Interface Serializable da API Java.

Proxy

Basicamente este Pattern é uma classe que funciona como uma interface para alguma coisa, delegando chamadas à uma classe que implementa um serviço. Não é muito útil em sua forma pura, pois sua implementação envolve a criação de uma classe que compartilha uma superclasse ou interface com uma classe provedora de serviço e delega (efetua chamadas de método) a essa classe provedora.

*Deduções de um Livro de Patterns que estou lendo. (Mark Grand, Patterns in Java, Volume 1)

Share and Enjoy:
  • Digg
  • del.icio.us
  • Netvouz
  • ThisNext
  • Wists
  • Technorati
  • blogmarks
  • StumbleUpon
  • YahooMyWeb
  • Furl

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in