DEV Community

Discussion on: #002 - Clean Code - Names

Collapse
thinkverse profile image
Kim Hallberg

Have you tried the contract naming? Instead of I it would be LoggerContract.

Collapse
vlasales profile image
Vlastimil Pospichal

No, in my opinion it's bad just the same. I use adjectives derived from the names of the required methods. The interface tells the class what capabilities it must have. Contract tells word contract only, no ability.

Thread Thread
alainvanhout profile image
Alain Van Hout

Indeed. It's an odd dissimilarity between C# and Java, that in Java it's the interfaces that are typically/often seen as primary: you have a Car interface and a CarImpl class (or rather, a specific type of car). After that, the user of the Car instance should only care about the instance being a Car, not which specific kind of car, apart from what can be gleaned via the interface's methods.

Thread Thread
vlasales profile image
Vlastimil Pospichal

Interface first, implementation last.