- What is the simplest interface that will cover all my current needs?
- if you reduce the number of methods in an API without reducing the overall capabilities, then you are probably creating a more general-purpose method. Reducing the number of methods makes sense only as long as the API for each individual method stays simple; if you have to introduce lots of additional arguments in order to reduce the number of methods, then you may not really be simplifying things
- In how many situations will this method be used?
- if a method is designed for one particular use it is a red flag that it may be too special purpose. see if you can replace several special methods with a single general-purpose method
- Is this API easy to use for my current needs?
- This question can help you to determine when you have gone too far in making an API simple and general-purpose. If you have to write a lot of additional code to use a class for your current purpose, that’s a red flag that the interface doesn’t provide the right functionality