Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/09/2008, 14:44
nazica
 
Fecha de Ingreso: julio-2008
Ubicación: Ukraine, Donetsk
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Una consulta simple...

Hay una diferencia significa - en el metodo segundo el nivel de abstraction es mas alto. El ejemplo: hay metodo que hace iteracion en collection para buscar algo. Si el metodo tiene la signatura
Código:
Object findSomething(ArrayList source);
él no puede acceptar ni LinkedList ni HashSet - solo ArrayList y sus descendientes. Y si hay necesidad en metodo que busca objetos en Set - debe que escribir otro metodo.
Si el metodo tiene otra signatura:
Código:
Object findSomething(Collection source);
, él puede acceptar cualquier objetos como ArrayList, LinkedList, TreeList y otros.
Conclucion: si el codigo tiene nivel de abstraction mas alto, él es mas claro, limpio y correcto.