Interfaces
Interface names must begin with "I". The rest of the name should be descriptive of it's responsibility.
- An interface which supplies or resolves another entity should be an IXxxResolver or IXxxProvider or IXxxFactory
- Single method interfaces can usually be suffixed with "able" such as ICloneable, IPassivatable, etc.
- Objects which hold others allowing the retrieval later should be a "Repository" or "Registery"
- Most other cases should have a noun as it's root where possible, IVehicle, IContentGenerator