These are very good!
I’m about to make a presentation about SOLID in my company, can I use your drawings?
For the Interface Segregation Principle, I don’t think the example is a good idea, because the “universal charger” is exactly what is being worked on (but with a single port).
I don’t have a suggestion though, sorry
Hey, sure, feel free to use those drawings! Just mention the source of it.
About the Segregation Principle, my idea was to illustrate the scenario when we may want to avoid the Banana Gorilla Problem with interfaces (when you need a banana, but instead you get a gorilla, holding the banana and the entire jungle).
Let’s say I need to charge my laptop, I’m asking for the charger, but instead of just a laptop charger, I’m getting the “universal” charger (in a bad sense here). As a result, I’m using only one output wire, but I also have 5 other different wires just hanging around with no use (for old MacBooks, for a PC laptop, for an iPhone, for the power bank, etc.)
Do you think it makes sense?
Yeah, that specific example is just wrong: the method is Plug(where), there is no other method there.
I was thinking about a portable speaker. Some people expect to Carry() things, other people want things to Blast(). But it’s not that easy to illustrate that I want to Carry() also my groceries, even if they cannot possibly Blast(). It would be a comic strip, xkcd style.