Bom dia Pessoal,
Estou com a seguinte dúvida em relação ao uso de Interfaces em Java.
Eu entendo que uma interface é como se fosse um contrato, em que todas as classes que implementá-la, terá que implementar seus métodos, assim todos as classes terão os mesmos métodos publicos, ou seja, a mesma interface.
Porém minha dúvida é em relação para quando de fato eu tenho que utilizar uma interface ou não.
Olhando os Mocks para JUnit (como por exemplo o EasyMock), ele diz para fazer mock em cima de interfaces (embora exista um projeto para mock em cima de classe concreta), mas se for para fazer mock apenas em interfaces, praticamente TODAS classes concretas do meu projeto terá que estar associada a alguma interface, e ao meu ver, isso é um desperdício de recursos e produtividade.
Então pesso ajuda dos experientes em arquitetura em deixar claro, quando realmente devemos usar Interface, e se realmente devemos usar em todos os objetos concretos?
Agradeço desde já

