For open source libraries, I think it worthwhile to invest extra effort to maintain binary compatibility. So, (when creating libraries in Java) I model interfaces as a empty abstract classes, allowing more evolutionary freedom without breaking binary compatibility.

For application code, I think that it more obvious to model an interface with an interface. When in this mode, I lean towards prefixing with 'I' (rather than suffixing or prefixing implementations with Impl or Default).

I see tentacles as an application, so I lean towards conventional application coding style and am less concerned about being able to maintain binary compatibility going forward.

Opinions? Objections?

Robert

Reply via email to