Friday, May 25, 2007 1:35 PM

 

Para nós seres humanos a timidez pode ser prejudicial em diversas situações, mas para uma classe a timidez é uma grande aliada e pode facilitar bastante a manutenção de seu aplicativo.

A assinatura de um método público é um contrato formal com todos os possíveis usuários daquela classe. Como todos sabemos romper um contrato é algo custoso. Portanto ao tornar um método público você está consequentemente tornando mais inflexível.

Para um método público, toda vez que você quiser alterar este contrato, seja mudando o nome do método, os parâmetros de entrada ou até deixando de usá-lo, você terá que avaliar as consequências disto para todos os seus potenciais consumidores. Se todo o código que usa aquela classe está confinado em uma mesma solução, talvez baste um grande refactoring de código e documentação. Se o escopo de utilização desta classe estiver fora de seu controle – uma API, por exemplo – talvez você tenha que manter aquele método para todo o sempre, garantindo a famosa e maldita backward compatibility.

 

Nem todos os métodos de uma classe devem e podem ser chamados outras classes. Muitos deles só dizem respeito à própria classe. Por isto você conhecer os access modifiers e escolhê-los consciência. Desta forma você está protegendo o seu direito de alterar o comportamento interno da classe no futuro.

OBS: Dando os méritos a quem merece, a idéia da timidez da classe foi tirada do excelente artigo do The pragmatic programmers: Keep it DRY, shy and tell the other guy.

Comments

No comments posted yet.
Post Comment
Title *
Name *
Email (never displayed)
Website
Comment * (Allowed tags: blockquote, a, strong, em, p, u, strike, super, sub, code)  
Please add 3 and 1 and type the answer here: