Site Meter
Mar 07
Divisão de responsabilidades
 

Aproveitando o assunto que o nosso amigo Tofinha abordou "Por que utilizar ColdFusion Components – CFCs?" e dentro deste assunto o mesmo abordou sobre OOP, um modelo de programação que eu simplesmente adoro. Uso em todo trabalho possível, seja em ColdFusion (como disse o Tofinha, sim é possível) como em outras tecnologias que trabalho.

Gostaria de falar sobre um fato que rolou no dia-a-dia do meu trabalho, onde fui "comentado", por um projeto onde eu fiz a arquitetura e eu desenvolvi sozinho. Esse projeto integrava-se com outras tecnologias como VB e C++, sendo que essa integração não foi bem aceita. Mas não vem ao caso agora.

 O que aconteceu de interessante que me inspirou esse post, foi um "comentário" que fizeram a respeito do meu trabalho, mais ou menos assim:

"O Paulo fez uns componentes, onde nesses componentes tinham métodos que carregavam outros métodos e não se entendia quem era quem!!!, por que não fez tudo no mesmo método."

Bom eu achei interessante o comentário gente, sinceramente. Mas isso me fez vim aqui postar sobre isso. Na verdade sobre o que é esse negócio complicado de um método chamar outro método e etc...

Eu acredito que a principal responsabilidade da Orientação a Objetos, é tentar criar modelos que trabalhem de uma forma mais parecida com o mundo real, por isso que em todo livro, apostila e todo tipo de material sobre OOP, temos aquele velho exemplo do objeto cachorro, carro e pessoa. Tenho um amigo que diz que só entendeu OOP quando entendeu que tudo na vida real é um Objeto. Inclusive ele! Pois é, ele está com grande razão nisso, podemos pensar assim.

E é pensando assim que temos como uma grande função da Orientação a Objetos a Divisão de Responsabilidades ou Separação de Responsabilidades como achar melhor dizer.

Pensando como meu amigo, que somos um objeto, o Objeto Paulo, tem métodos "Pegar,  Pisar, Falar".... e etc... é possível o método "Falar", pegar alguma coisa?

Creio que não né? Então para o braço "Pegar" alguma coisa ele não pode usar o método "Falar" certo??? Mesmo o método "Falar" pertencendo a mesma classe que o método "Pegar", não é por que estão no mesmo lugar que devem ser um só.

Então a divisão de responsabilidade, é mais ou menos isso, digamos que eu quero explicar para outra pessoa como se pega num "mouse".
Eu vou usar o método "Falar" para explicar e chamarei no método "Falar" o meu método "Pegar" para fazer a demonstração de como pegar no "mouse" do computador.

Na programação, tem situações que são bem mais fechada, existem métodos que só existem para determinado método chamá-lo, para isso temos uma outra situação que temos que definir na hora de criá-los. Que são seu tipo de acesso. Para um método que só será usado por outro método daquela classe, o correto seria defini-lo como tipo de acesso "Private" e o mesmo não poderá ser chamado diretamente pela aplicação, só através do método que o terá a responsabilidade de usá-lo.

Bom ilustrei o que aconteceu, tentei explicar o que é e para que serve a "Divisão de Responsabilidades" na Programação Orientada a Objetos.
São conceitos que valem a pena ser analisados e entendidos... mesmo que te chamem de maluco, o interessante é usá-lo, mas de forma correta, nada de excessos.

 
Comentários(0) Print del.icio.us Salvar
 

Comentários (Seu comentário não aparecerá até ser aprovado.)

 
Sem comentários no momento

Autor

Paulo Teixeira

Bookmark and Share


Busca


Categorias

Adobe [25]

AIR [20]

Certificações [1]

CFUG-BR [2]

ColdFusion [14]

Consultoria [1]

Dicas [22]

Eventos [5]

Flex [23]

Flex Cookbook [1]

Geral [14]

LCDS [1]

OOP/Patterns [6]

Tutoriais [13]



Por onde ando

Adobe

AIR Feed

Ben Forta

Blog Leo Caseiro

CFGIGOLÔ

CFUG-BR Adobe Groups

CFUGBR

ColdFusion Feed

Devnet ColdFusion

Flex Feed

Got API

Lauro Santos

My Adobe Groups

My BlipFm

My Flickr

My LinkedIn

My Twitter

Pcsilva

Por que CF?

Programming Land!

Rafael Capucho

Silvio Delgado Blog

Tofinha

Why CF?


Favoritos

Você precisa ter uma conta no blog para ter favoritos


  Credenciais


  Comentários

Bom post Paulo. Realmente a evolução em relação a desempenho...

João Felipe - Jotaef

Olá, por favor, gostaria de mais informações a respeito do timesheet....

Raquel

Hi Paulo, I have just downloaded your RIABox AIR Browser to...

Theo Cosmora

Olá Paulo, Gostei da iniciativa e achei bem interessante! Parabéns! Entendo...

Fernando Arruda

Olá, Paulo. Que tal implementar nesta aplicação um módulo que gere...

Felipe Magalhães


  Parceiros


  Assine

     RSS

     LOGIN

 

  AIRRotas

  RiaBox