Respeito à Propriedade Privada
As classes implementadas em uma mesma unit gozam de uma relação sabidamente promíscua: uma pode ver e acessar as partes privadas de outra, mesmo que não herde dela. Algumas vezes esse tipo de “intimidade” pode até ser útil, já que estão no mesmo arquivo de código e (em teoria) as classes são escritas pela mesma pessoa ou membro de uma mesma equipe de desenvolvimento. De qualquer forma, não é muito respeitoso.
Uma coisa que me incomoda particularmente é quando acabo de definir um campo privado em uma classe e depois em outra parte do código quando menciono a tal classe vem o Code Insight e no maior descaramento me dá a opção de usar aquele campo. Como assim? Eu disse claramente que era era privado e ele vem na minha cara me dar a opção de bolir com o campo privado dos outros? Por isso que esse país não vai pra frente.
Revoltado, fui até a declaração do dito campo e alterei a cláusula “private” por “strict private”. Eu posso ter dito claramente privado, mas não disse “estritamente”. Pronto. Agora sim, foi restaurada a decência e os bons costumes na minha unit. Nada de enxergar as partes “estritamente” privadas das outras classes!
Afinal, não migrei para Delphi 2007 por nada.
Comments
6 Responses to “Respeito à Propriedade Privada”
Deixe uma Resposta

Ola Daniel.
Acho interessante as postagens do seu blog.
Gostaria, se possivel, que vc comentasse um pouco mais sobre as formas de desenvolvimento e ferramentas que utiliza…abraco! up the irons!
Obrigado, Sebastian. Vou ouvir sua sugestão e escrever um pouco sobre minhas ferramentas e práticas.
Muito bom comentar sobre este recurso, repliquei ele no meu blog, muito boa a lembrança. Parabéns! :)
Cara, Malta, mto engraçado a alusão que vc fez. Ainda mais que o tom irônico ampliou extremamente o sentido didático do ponto que vc pretendeu destacar ( kkkk … no bom sentido é claro .. hehehe).
Ok, ok, ok …
Cara, segundo fontes … o conceito de classes amigas foi revisto na VCL para compatibilidade com o .Net.
Não sei até que ponto isso se confirma, mas se não me falha a memória desde o d2005 o “strict private” já estava valendo … a casa … hehheh.
Sou solidário ao sentimento de indignação, quanto a privacidade devassada … hehhehhee.
Veja, não estou tentando afirmar que no copo vazio fica impossível verificar de que região é o vinho, um paladar apurado isso exige, mas com o “strinc private” é isso que acontece de fato … hhehehh
Vlw Malta, abração!!!
Ah!!! Outra coisa …
o class complete do D2006 insiste na “private”, mesmo já existindo a “strict private” … isso é irônico também!!
No contexo, vale lembrar do “strict protected” … para evitar que alguém desavisadamente deixe outras partes “à mercê da libido alheia” .
Fala Gerson,
Por isso que eu faço questão de só alocar vinhos em que a procedência é pública! :-)
A verdade é que é sempre a necessidade de compatibilidade com novas tecnologias de terceiros que tem dirigido a implementação de novos recursos da linguagem Delphi.
As “interfaces” surgiram no Delphi para tornar possível a integração com o modelo de objetos COM da Microsoft. Vários recursos foram acrescentados ao compilador para tornar o código portável entre Windows e Linux, na época do Kylix. “Strict private” e “strict protected”, como você mencionou, para compatibilizar com .NET. Assim também “generics” (por enquanto só no Delphi for .NET) e métodos em records.
Isso mostra que a Borland/CodeGear está sempre correndo atrás do mercado, ao contrário de linguagens como Ruby e Python, que inovam espontaneamente por iniciativa do movimento open-source.
Valeu pela sua contribuição!
Abraços,
Malta.