¿Debería crear siempre una interfaz si existe la posibilidad de que haya algo más que pueda usarla, o esperar hasta que exista una necesidad real, entonces refactorizar para usar una interfaz?¿Debería crear una interfaz cuando allí (actualmente) solo va a haber una clase que la implemente?
programación a una interfaz en general, parece como un buen consejo, pero luego está YAGNI ...
supongo que tal vez depende de la situación. En este momento tengo un objeto que representa una carpeta que puede contener recetas u otras carpetas. En lugar de usar Folder directamente, ¿debería preocuparme por implementar algo como IContainer? En caso de que en el futuro quiera tener una receta que se refiera a otras recetas secundarias (por ejemplo, una receta de tarta de manzana que también es un recipiente para una receta de pastel de masa)
YAGNI, no vas a necesitarlo -> no vas a necesitarlo –
Precisamente. Cada vez que pongo interfaces o lo que sea que 'por si acaso' resulten necesarias nunca exactamente. Pero tu kilometraje puede variar. –