| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 11:54:10
|
deniswsrosa
GUJ Ranger
![[Avatar]](/images/avatar/28a7602724ba16600d5ccc644c19bf18.jpg)
Membro desde: 21/07/2005 08:51:27
Mensagens: 807
Offline
|
Olá a todos!
Pesquisei no fórum e não achei nada relacionado, portanto resolvi postar.
A algum tempo venho observando que talvez a linguagem precise de um modificador extra, esse modificador faria o papel de manter as classes públicas acessíveis somente dentro do arquivo Jar que as contem.
Ex. Adicione qualquer framework ao seu projeto e logo vc verá que poderá importar e utilizar qualquer classe pública deste. Sendo que teoricamente vc deveria ter acesso somente as classes que você realmente irá precisar.
É possivel fazer isso usando OSGI por exemplo mas ter um modificador com essa funcionalidade não seria muito mais fácil?
Concordam? Discordam?
Aguardo opiniões!
|
SCJP, SCEA I
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 11:59:19
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Falta sim, até que isso está previsto para entrar no Java 8 (não vai dar tempo para entrar no java 7).
http://openjdk.java.net/projects/jigsaw/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 12:13:49
|
Leonardo3001
GUJ Ranger
Membro desde: 04/07/2007 18:28:58
Mensagens: 975
Offline
|
O projeto Jigsaw não é muito diferente do OSGI: não vai criar nenhum modificador novo, apenas um arquivo separado onde você define o que será público fora do pacote.
Eu sei que em Scala, existe o modificador private por pacote. Seria mais ou menos assim:
Indica que qualquer método de qualquer classe deste pacote tem visibilidade desta função. Agora, não lembro se os subpacotes conseguem vê-lo também. Se for possível, é exatamente o que você precisa.
P.S.: Pra mim Java 7 já virou "Duke Nuke Forever", imagina o Java 8.
|
Leonardo Veríssimo
-------------------------------------------------
Objectzilla |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 12:55:27
|
Rubem Azenha
GUJ Master
![[Avatar]](/images/avatar/cb953f6ca5923f7517125db46ed1293d.jpg)
Membro desde: 28/06/2004 00:10:43
Mensagens: 1933
Localização: São Paulo, SP
Offline
|
Eu acho que isso só vai complicar as coisas. Tem muita coisa que poderia melhorar que é muito mais importante do que um modificador desses...
|
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 13:59:49
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Acho os modificadores do Java extremamente permissivos.
Por que o protected abre tanto para as classes do mesmo pacote?
De privado mesmo você praticamente só tem o private.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 14:01:02
|
wellington.nogueira
GUJ Ranger
![[Avatar]](/images/avatar/00c1de56b1cbab48f9869c1460d70e76.png)
Membro desde: 11/08/2006 11:29:56
Mensagens: 914
Localização: Osasco-SP
Offline
|
A idéia é interessante, também já senti falta disso, mas concordo com o Rubem Azenha quanto a ser algo de menor importância.
|
57 45 4C 4C 49 4E 47 54 4F 4E
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
"Se você acha que programar em Java com Swing é simples? Acredite em mim, não é!"
http://developmentforever.wordpress.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 14:22:09
|
ozix
JavaEvangelist
Membro desde: 25/05/2006 18:00:15
Mensagens: 326
Localização: Porto Velho
Offline
|
Sempre pensei nesse ponto relacionando-o com a arquitetura multi-camadas. Embora você separe sua aplicação nas camadas A - B - C. Não há uma solução natural java que impeça que A acesse C.
Também sempre me fiz a mesma pergunta do Vini.
|
O céu é azul porque a matrix roda em Windows |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 14:34:01
|
zica
Thread.start()
![[Avatar]](/images/avatar/c8c927ca414b70b6be5cb.jpg)
Membro desde: 10/09/2004 13:23:50
Mensagens: 46
Localização: São Pauo/SP
Offline
|
atualmente para suprir isso acabo controlando isto via JDepend com testes unitários
|
"A força de vontade pode superar tudo!"
Ernesto Guevara de la Serna, janeiro de 1947.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 14:37:01
|
deniswsrosa
GUJ Ranger
![[Avatar]](/images/avatar/28a7602724ba16600d5ccc644c19bf18.jpg)
Membro desde: 21/07/2005 08:51:27
Mensagens: 807
Offline
|
Rubem Azenha wrote:Eu acho que isso só vai complicar as coisas. Tem muita coisa que poderia melhorar que é muito mais importante do que um modificador desses...
Opa! Claro que existem coisas muito mais importantes, mas é algo pequeno e pouco complexo mas que faria muita diferença, discordo quanto a complicar as coisas, pelo contrário, facilitaria e muito! pois evitaria que algum chato mecha aonde não deve, melhora o encapsulamento e ainda torna os componentes de uma forma geral menos propensos a erros.
This message was edited 2 times. Last update was at 29/06/2010 14:50:18
|
SCJP, SCEA I
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 14:42:34
|
Felagund
GUJ Master
![[Avatar]](/images/avatar/d8d855c465198499868fb2b566ebee8d.jpg)
Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline
|
Eu sou até contra o uso do final hauhauhauha.
O melhor é ser extensivo somente em alguns casos o bloqueio deve existir
|
att
Rafael Felix
Rolling With Code
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 15:56:50
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
existe private package ???
pacote privado? o q seria?
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 16:50:58
|
Oenning
Thread.start()
![[Avatar]](/images/avatar/d1744bbff50dd9d5ee97ae053076295b.jpg)
Membro desde: 11/05/2007 19:16:26
Mensagens: 48
Offline
|
Em C# existe o modificador internal:
Neste caso a classe MinhaClasse só é acessível dentro da mesma DLL
|
Blog: http://blog.oenning.eti.br
Twitter: @goenning
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 16:54:12
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
o "internal" foi uma forma muito simples e prática de resolver esse problema que o Anders Hejslberg (sempre ele ) achou no Java. Agora o Jigsaw é bem mais complicado
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 17:04:02
|
clone_zealot
JavaEvangelist
Membro desde: 21/11/2004 16:40:00
Mensagens: 424
Offline
|
Eu vejo que falta a linguagem Java o conceito de módulo.
Muitos pensam em pacotes como módulos. E até certo ponto, vejo isso como correto. Acontece que os pacotes são divisões mais lógicas do que físicas, mesmo eles sendo representados como pastas.
Para as DLLs(das antigas. No C# eu não sei se é assim) é mais fácil isso, pois elas são criadas para uma plataforma específica, numa linguagem específica, dentro de ambientes de desenvolvimento mais rígidos.
Eu digo que falta o conceito de módulo a linguagem Java especificamente, pois a comunidade de desenvolvimento tem esse conceito bem definido, e o projeto Jigsaw vem trazer esse conceito ao SDK do Java. Mas, a linguagem em si ainda não possui esse conceito. Falta uma abstração de mais alto nível para um módulo. Hoje em dia, temos que criar interfaces, proteger classes e fazer malabarismos para fornecermos um camada de comunicação externa, e ainda manter integro o encapsulamento, e não permitir que outros acessem coisas indevidas.
This message was edited 1 time. Last update was at 29/06/2010 17:07:41
|
"Não amo a espada por sua agudez,
não amo a flecha por sua rapidez,
não amo o homem por sua glória,
amo sim, tudo o que eles defendem"
Faramir, Príncipe de Ithilien |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 17:09:35
|
Oenning
Thread.start()
![[Avatar]](/images/avatar/d1744bbff50dd9d5ee97ae053076295b.jpg)
Membro desde: 11/05/2007 19:16:26
Mensagens: 48
Offline
|
Sou desenvolvedor C# e recentemente comecei a usar Java.
Uma das coisas que percebi é justamente o que nosso amigo ali falou:
"Sempre pensei nesse ponto relacionando-o com a arquitetura multi-camadas. Embora você separe sua aplicação nas camadas A - B - C. Não há uma solução natural java que impeça que A acesse C. "
Em C# (geralmente) cada camada é separada em DLLs diferentes, sendo assim, é possível informar qual "camada" tem acesso à outras "camadas".
|
Blog: http://blog.oenning.eti.br
Twitter: @goenning
|
|
|
 |
|
|