Edit: of course it is up to individual judgement on a case by case basis, and there are instances were it is obvious that no other concrete implementation of an interface will be required. But otherwise, writing an interface is good practice because it helps safeguard against time consuming future refactoring.