I’m at a point in my development learning where I feel like I must learn more about interfaces.
I frequently read about them but it just seems like I cannot grasp them.
I’ve read examples like: Animal base class, with IAnimal interface for things like ‘Walk’, ‘Run’, ‘GetLegs’, etc – but I’ve never been working on something and felt like ‘Hey I should use an interface here!’
What am I missing? Why is it such a hard concept for me to grasp! I am just intimidated by the fact that I might not ever realize a concrete need for one – mostly due to some missing aspect of understanding them! It makes me feel like I’m missing something up top in terms of being a developer! If anyone has had an experience like this and had a breakthrough I would appreciate some tips on how to understand this concept. Thank you.
it solves this concrete problem:
you have a, b, c, d of 4 different types. all over your code you have something like:
why not have them implement IProcessable, and then do
this will scale much better when you add, say, 50 types of classes that all do the same thing.
Another concrete problem:
Have you ever taken a look at System.Linq.Enumerable? It defines a ton of extension methods that operate on any type that implements IEnumerable. Because anything that implements IEnumerable basically says ‘I support iteration in a unordered foreach-type pattern’, you can define complex behaviors (Count, Max, Where, Select, etc.) for any enumerable type.