Demasiado Largo; Para Leer
Hay dos convenciones de nomenclatura principales para las interfaces en Java: sin prefijo ni sufijo para las interfaces, sufijo ~Impl para las implementaciones, prefijo ~I para las interfaces. Este último es popular entre la gente que viene de otros lenguajes, como C#, C++ o Python. En Java, todas las interfaces se nombran sin prefijo: list, ISerializable; IApplicationContext. En C#, toda la biblioteca estándar usa la misma convención, por lo que las clases de usuario que siguen la misma convención de nomenclatura encajan naturalmente. Esta es la primera y principal razón para preferir la primera convención de nomenclatura.