Em uma das minhas entrevistas de emprego...  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

uma resposta bem simples pode ser que um interface eh sempre 100% abstrata, onde há apenas metodos abstratos, uma class abstrata nem sempre eh 100% abstrata. Com interface vc tem um contrato entre class & interface.
menphis concordo, essa frase eh show.

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
victorwss
JWizard
[Avatar]

Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline

A diferença arquitetural a meu ver, é que as interfaces são mais flexíveis e menos intrusivas, sendo uma melhor opção do que classes abstratas na estipulação de contratos entre objetos.

Por outro lado, com classes abstratas você tende a precisar de menos códigos.

Na prática, deve-se sempre favorecer o uso de composição em lugar de herança, o que implica em preferir interfaces ao invés de classes abstratas. Isso pode ser conseguido mantendo-do se o foco da arquitetura no príncipio de responsabilidade única e com o uso de alguns Design Patterns como o Strategy e o State. Se você conseguir isso, verá que não necessitará de herança de classes, o que significa também que não necessitará de classes abstratas. A única coisa chata que fica é que em vários lugares pode ser preciso vários métodos que apenas delegam as chamadas para objetos encapsulados, mas isso é considerado um problema da linguagem java e não da arquitetura, e mesmo assim, é possível trabalhar-se esse problema.

De fato, na década de 1980 a herança era vista como algo muito bom e bastante estimulada. Na década de 1990, quando java foi concebido, já se via que a herança múltipla criava mais problemas do que soluções, por isso java ficou com o esquema de herança única. Hoje em dia, acredita-se que qualquer herança seja algo ruim, e que o melhor é eliminá-la. O motivo é simples: A subclasse está fortemente acoplada ao comportamento da superclasse, e qualquer arquiteto sabe que acoplamento forte é algo muito ruim. No entanto interfaces não têm implementações, e portanto não sofrem deste problema.

Isso é a diferença arquitetural e acredito ser esse o tipo de resposta que o entrevistador esperava. A diferença na linguagem todo mundo sabe, mas a diferença arquitetural é algo mais profundo e requer muito mais experiência para ser compreendido.

This message was edited 1 time. Last update was at 23/01/2010 02:00:39


Victor Williams Stafusa da Silva

Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.

Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.

Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.


É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).


Se você escreve "concerteza", "concerteza" você andou matando aulas de português.
[MSN]
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

A respota certa é que não ha diferença arquitetural nenhuma.

Existe sim diferença entre classes abstratas e interfaces em Java, mas nada que influencie a arquitetura final, pelo menos não deveria.

This message was edited 1 time. Last update was at 23/01/2010 10:42:50

Jesuino Master
GUJ Ranger
[Avatar]

Membro desde: 12/02/2009 08:40:06
Mensagens: 783
Offline

mochuara wrote:A respota certa é que não ha diferença arquitetural nenhuma.

Existe sim diferença entre classes abstratas e interfaces em Java, mas nada que influencie a arquitetura final, pelo menos não deveria.


Você é o entrevistador? Só ele pode afirmar isso!

Há muitas imprecisões aqui: A pergunta pode não ter sido daquela forma, se foi, o erro está na pergunta. Numa entrevista de emprego, com o rapaz nervoso[e querendo mostrar que sabe], o entrevistador pergunta algo cuja resposta pode ser pessoal, até filosófica, pode ter diversos pontos de vista. A pergunta mesmo pode ser interpretada de diversas formas.

Tinha uma amigo que falava que as pessoas acham que entrevistas de emprego são jogos, com diversas dessas "peraltices". Mas não, são pra conhecer o entrevistado.

Então, antes de achar isso, considere as imprecisões, tanto do autor do post, quanto do entrevistador!

William Antônio Siqueira
Analista de Suporte
Blog e Twitter
Site Pessoal
Projetos? Idéias? Críticas? MP!
Não tome uma opinião como verdade absoluta!
Will_HRock
JavaGuru

Membro desde: 11/04/2009 20:40:23
Mensagens: 211
Offline

Uma resposta bem simples seria que substantivos indicam classes abstratas e adjetivos e substantivos abstratos indicam interfaces.

This message was edited 1 time. Last update was at 24/01/2010 02:05:01

[Email] [MSN]
laudenpower
JavaEvangelist
[Avatar]

Membro desde: 28/12/2008 21:00:08
Mensagens: 349
Offline

Lucas Emanuel wrote:Em uma das minhas entrevistas de emprego...

Eu estava começando na área de informática, e tinha um teste pesicológico.

Nesse teste o psicólogo me perguntou:

"S do perdigão é vermelho ou preto ?"

respondi:

"Vermelho!"

Psicólogo:

"Bom, perdigão não tem S, quem tem é Sadia, e além do mais S da Sadia é preto..."

Resultado: Não fui contratado.



Pô se uma empresa se prende a esse tipo de teste, quem sabe o que te aguardaria la....
Mas lendo o teu post, acabei de cometer o mesmo erro auhauhauhauauah

Enquanto cultivares teu saber, nada tens a temer!

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
bicarbonato
JavaChild
[Avatar]

Membro desde: 03/03/2007 23:34:13
Mensagens: 142
Offline

Lucas Emanuel wrote:Em uma das minhas entrevistas de emprego...

Eu estava começando na área de informática, e tinha um teste pesicológico.

Nesse teste o psicólogo me perguntou:

"S do perdigão é vermelho ou preto ?"

respondi:

"Vermelho!"

Psicólogo:

"Bom, perdigão não tem S, quem tem é Sadia, e além do mais S da Sadia é preto..."

Resultado: Não fui contratado.





juro pra vc que quando eu tava lendo o início eu tentei me lembrar da cor do S

Vocabulus - Free Dictionaries at: http://www.vocabulus.110mb.com
andre_mbm
JavaChild

Membro desde: 18/04/2009 19:33:29
Mensagens: 146
Offline

Essa é igual aquela pergunta ridícula:
Quantos animais entraram na arca de moisés?
Ai o fulano responde e depois o outro: A arca é de noé e não moisés...

Simplesmente tosco esse método de seleção de candidatos hein, IMHO.
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

Jesuino Master wrote:
mochuara wrote:A respota certa é que não ha diferença arquitetural nenhuma.

Existe sim diferença entre classes abstratas e interfaces em Java, mas nada que influencie a arquitetura final, pelo menos não deveria.


Você é o entrevistador? Só ele pode afirmar isso!

Há muitas imprecisões aqui: A pergunta pode não ter sido daquela forma, se foi, o erro está na pergunta. Numa entrevista de emprego, com o rapaz nervoso[e querendo mostrar que sabe], o entrevistador pergunta algo cuja resposta pode ser pessoal, até filosófica, pode ter diversos pontos de vista. A pergunta mesmo pode ser interpretada de diversas formas.

Tinha uma amigo que falava que as pessoas acham que entrevistas de emprego são jogos, com diversas dessas "peraltices". Mas não, são pra conhecer o entrevistado.

Então, antes de achar isso, considere as imprecisões, tanto do autor do post, quanto do entrevistador!


Se o objetivo da pergunta é conhecer o entrevistado porque esta preocupado em saber se esta errada ou certa? O que importa é sua resposta. E ficar "considerando as imprecisões" é sinal que vc não deve ser produtivo no trabalho (a menos que vc seja advogado).
Jesuino Master
GUJ Ranger
[Avatar]

Membro desde: 12/02/2009 08:40:06
Mensagens: 783
Offline

mochuara wrote:
Jesuino Master wrote:
mochuara wrote:A respota certa é que não ha diferença arquitetural nenhuma.

Existe sim diferença entre classes abstratas e interfaces em Java, mas nada que influencie a arquitetura final, pelo menos não deveria.


Você é o entrevistador? Só ele pode afirmar isso!

Há muitas imprecisões aqui: A pergunta pode não ter sido daquela forma, se foi, o erro está na pergunta. Numa entrevista de emprego, com o rapaz nervoso[e querendo mostrar que sabe], o entrevistador pergunta algo cuja resposta pode ser pessoal, até filosófica, pode ter diversos pontos de vista. A pergunta mesmo pode ser interpretada de diversas formas.

Tinha uma amigo que falava que as pessoas acham que entrevistas de emprego são jogos, com diversas dessas "peraltices". Mas não, são pra conhecer o entrevistado.

Então, antes de achar isso, considere as imprecisões, tanto do autor do post, quanto do entrevistador!


Se o objetivo da pergunta é conhecer o entrevistado porque esta preocupado em saber se esta errada ou certa? O que importa é sua resposta. E ficar "considerando as imprecisões" é sinal que vc não deve ser produtivo no trabalho (a menos que vc seja advogado).

Digo considerar imprecisões do post!
É que não digo por mim, depois fica todo mundo achando que entrevista é cheia de "pegadinhas". Já vi cara bom responder coisas do tipo em questões triviais e perder a vaga...

Se levou a mal, reconsidere....

E considero muitas imprecisões no trabalho também. Quantos programas já saíram pra produção com detalhes que fizeram gerar rework. Detalhes que poderiam ser percebidos se alguém considerasse as imprecisões e pedisse para revisarem a documentação, por exemplo . Melhor não ser tão produtivo e fazer bem, que gerar um monte de rework e dor de cabeça pra cliente, empresa, QA....

William Antônio Siqueira
Analista de Suporte
Blog e Twitter
Site Pessoal
Projetos? Idéias? Críticas? MP!
Não tome uma opinião como verdade absoluta!
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team