https://www.youtube.com/watch?v=StfOnoGpp_o
Building a GUI text editor with two designs. One has a Text class that is 'specialised' to the user interface. The other has a more 'general purpose' text class. Inspiration comes from Chapter 6 of John Ousterhout's book 'A Philosophy of Software Design'.
Three guiding questions to achieve a good, general purpose design:
- What is the simplest interface that will cover all my current needs?
- In how many situations will this method be used?
- Is this API easy to use for my current needs?