Il n'y a aucun moyen de prédire l'avenir et de voir si vous allez avoir besoin de programmer par rapport à une interface en cours de route. Mais si vous décidez plus tard de tout utiliser une interface et, disons, une usine pour créer des instances de types inconnus (tout type qui implémente l'interface), alors il est plus rapide de restreindre la programmation à une interface et une usine Pour remplacer les références à MyImpl par des références à IMyInterface plus tard, etc.
Ainsi, lorsque vous écrivez un nouveau logiciel, il est judicieux de programmer la programmation par rapport à une interface ou une implémentation, sauf si vous savez ce qui risque de se produire. ce genre de logiciel basé sur des expériences précédentes. Habituellement, je le garde «en flux» pendant un certain temps, que j'aie ou non une interface, une classe de base, ou les deux, et même si la classe de base est abstraite (c'est généralement le cas). Je vais travailler sur un projet (habituellement une solution Visual Studio avec environ 3 à 10 projets) pendant un moment (quelques jours, peut-être) avant de refactoriser et/ou de demander un deuxième avis. Une fois qu'une décision finale est atteinte et que le code est refactorisé et testé, je dis à mes amis développeurs qu'il est prêt à l'emploi.
Avez-vous des exemples? Je vous recommande de lire cette réponse: http://stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an-interface/384067#384067 –
S'il s'agit de classes COM, c'est normal (lire: sorte de requis). –
Possible duplicate of [Est-ce la meilleure pratique pour extraire une interface pour chaque classe?] (Http://stackoverflow.com/questions/3036749/is-it-the-best-practice-to-extract-an-interface- pour tous les cours) – DavidRR