Uma boa maneira de compreender os namespaces é através dos
modificadores de acesso. Estes elementos controlam a visibilidade das
propriedades e métodos de uma classe. Muitas linguagens possuem três
modificadores de acesso: private, protected e public. Os modificadores
de acesso permitem ao programador limitar o acesso a determinados
elementos e assim garantir um bom encapsulamento. Quando você diz que
alguma coisa é "public", por exemplo, você está dizendo: "pessoas,
usem isto aqui a vontade porque isto não irá mudar". Por outro lado,
quando você torna algo "private" ninguém poderá usar e você é livre
para alterar como quiser. O "protected" está no meio do caminho ao
permitir que os elementos sejam alterados dentro de um escopo
(herança) mais limitado que o "public", porém menos rígido que o
"private". Por fim, cabe dizer que os modificadores de acesso ajudam a
fazer o que é mais importante em programação: lidar com a
complexidade. Quando todo mundo pode mexer em tudo, tais como
variáveis Globais, tica difícil para o programador ter que lembrar
quais os locais que determinado elemento foi utilizado. Mas quando
você limita o escopo/acesso dos elementos fica mais fácil de gerenciar
este tipo de coisa.

Agora o que os namespaces têm a ver com tudo isto? Bem, você pode
pensar nos modificadores de acesso padrão do ActionScript (internal,
private, protected e public) como namespaces pré-definidos. Isto
significa que você pode implementar seu próprio modificador de acesso
e assim estabelecer um nível de controle a mais, que lhe ajudará a
lidar melhor com a complexidade. Imagine que você possui um conjunto
de classes que fazem parte de um framework que você está
desenvolvendo. De repente você percebe que a classe "A" precisa chamar
o método "test" num objeto da classe "B" que está num pacote
diferente. Mas você não quer tornar o método "test" public porque ele
é de uso interno do seu framework. O que você faz? Bem, você pode
criar um namespace chamado "framework" e defini-lo como o modificador
de acesso do método "test". Na realidade é isto que a Adobe fez com
muitos elementos do SDK do Flex. Se você abrir a classe UIComponent
verá que existe um modificador de acesso "mx_internal". Isto permite
que os componentes do SDK tenham acesso a estes elementos mesmo
estando em pacotes diferentes ao mesmo tempo em que estes elementos
não são públicos "naturalmente". Eu digo "naturalmente" porque sei que
existe uma maneira de usar estes elementos mesmo eles não sendo
públicos. Porém não devemos usá-los, pois se não são explicitamente
públicos a Adobe poderá modificá-los amanha e o nosso programa que fez
o uso indiscriminado destes elementos "mx_internal" irá parar de
funcionar.

Existem outros cenários onde o uso de namespaces pode ser conveniente,
mas acho que já escrevi demais. :-D


On 18 jun, 17:49, Emanuel Mandelli <[EMAIL PROTECTED]> wrote:
> Olá pessoal, tudo bem?
>
> Alguém poderia me explicar namespaces? Estou lendo um livro em inglês
> mas não estou entendendo.
>
> --
> Abraços,
> Emanuel
> [EMAIL PROTECTED]


--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a