Object-oriented Programming (OOP) Notes
Common mistakes in class design
Even small changes in the API may require many updates.
Subclass methods that are empty
/pass. This may be a sign that the abstraction needs to be refactored.
Often hard to reason about. Limit yourself to simple mixins if you must do it.
Tying the interface to the implementation.
Example: persistent object that exposes underlying database functions directly.
Invalid method sequences.
If you can't call process until you call open, then process should do that for you.