Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Contexto da aplicação?

Pessoal bom dia, estou tentando mexer em uma biblioteca em Java, mas acredito que isso serve para qualquer linguagem com POO. Vejo alguns parâmetros com o nome de Context:

public PPComp(android.content.Context context)
Construtor da classe PPComp.
Parameters:
context - Contexto da aplicação.

Com esse exemplo acima do doc da lib. Já fui na internet e não achei algo que me faça entender de forma simples o que significa CONTEXTO DA APLICAÇÃO. Obrigado desde já =)

5 respostas

Oi Gabriel, acho que é bem a ideia de onde o recurso vai estar disponível. Veja, em aplicações web, temos basicamente 3 contextos: O de sessão, o de requisição e o de aplicação.

O de sessão está vinculada a todos os requests de um único usuário, essa é a definição básica de sessão.

O de requisição está vinculada a cada requisição separadamente.

O de aplicação está vinculada a aplicação inteira, ou seja, enquanto a aplicação estiver de pé, aquele recurso vai permanecer disponível.

Em aplicações Android também temos contextos que pode variar bastante. A Activity é um contexto (até onde lembro).

Contexto no geral pode ser definido como um ponto onde o recurso estará disponível e vinculado. No caso do Android o recurso pode estar vinculado a uma tela específica ou vinculada a aplicação inteira, este último é o contexto de aplicação.

Você pode trocar a palavra contexto por escopo, que também vai dar certo pra assimilar o conceito.

Contexto da Aplicação = Escopo da Aplicação (vale para a aplicação inteira, está disponível neste escopo / contexto).

Pegou a ideia? Não é um conceito da O.O em sí.

É válido eu dizer que o contexto é a estrutura que quero usar? pois entendo que Escopo em si, é a estrutura do que quero manipular

solução!

Hm, não exatamente, escopo e contexto são palavras mais versáteis que estrutura, em alguns casos essa associação pode não bater.

Se olharmos as palavras contexto, escopo e estrutura no dicionário. Veremos que as duas primeiras estão relacionadas a limite, abrangência, envolvimento de algo/alguém que faz parte, enquanto estrutura está ligado a como as partes estão dispostas, organizadas.

Claro que em programação, estrutura pode significar ainda mais que isso.

Aqui acontece que escopo e contexto pode abranger mais de uma estrutura que está dentro de um limite que pode ser mais amplo ou mais restrito.

Se a gente pegar por exemplo um Modelo e um DAO. No modelo MVC das aplicações web, não faz sentido o DAO estar exposto ao contexto/escopo da View ou Controller, mas sim do Modelo. Claro que esse exemplo exclui muitos outros fatores, em alguns modelos, o DAO vai ser exporto até o Controller, mas não para a View.

Um exemplo ainda mais básico: em classes podemos ter atributos estáticos e não estáticos, o que determina se o atributo vai ser estático ou não, é o escopo e o contexto de uso.

Se o atributo possui valor comum para todos os objetos, ele pode ser estático, e se esse valor é imutável, cria-se uma constante. Porém, se o valor não é comum, mas sim particular a cada objeto, ele não pode ser estático. É de escopo/contexto do objeto e não da classe (escopo/contexto mais restrito.) Se for comum, será estático, estará no contexto/escopo da classe (escopo / contexto mais amplo).

Neste caso da classe, estrutura reflete a tudo que compõe a classe. O que ela possui, não fazendo referência a escopo ou contexto.

Pegou a ideia? Faz sentido pra você?

não faz sentido o DAO estar exposto ao contexto/escopo da View ou Controller, mas sim do Modelo

Acho que essa parte foi a qual fez bastante sentido pra mim entender melhor, acredito que pra eu consolidar agora isso é praticar isso.. Obrigado!

Isso, a prática faz bastante diferença! Sucesso Gabriel!

Qualquer coisa, estamos por aqui.