In the project I’m working on, I’ve noticed that for every entity class there is an interface. It seems that the original motivation was to only expose interfaces to other project/solutions.
I find this completely useless, and I don’t see the point in creating an interface for every class. By the way, those classes don’t have any methods just properties and they don’t implement the same interface.
Am I wrong? Or is it a good practice?
Thx
There may be more to the setup than described here that justifies the overhead of interfaces. Generally they’re very useful for dependency injection and overall separation of concerns, unit testing and mocking, etc.. It’s entirely possible that they’re not being used for this purpose (or any other constructive purpose, really) in your environment, though.
Is this generated code, or were these manually created? If the former, I suspect the tool generating them is doing so to prepare for such a use if the developer were so inclined. If the latter, maybe the original designer had something in mind?
For my own “best practices” I almost always do interface-driven development. It’s generally a good practice to separate out concerns from one another and use the interfaces as contracts between them.