I am learning about design patterns and the first example in the book is about Abstract Factory. I have built the exercise in VS and all looks good, but there is one questio
An interface is indeed the most elegant way to do this.
An argument to use an abstract class: Sometimes it can be useful to use an abstract class when the class maintains a state and some parts are already known.
However it is safer to first use an interface and then optionally implement an abstract class who introduces such state. Since C# only allows single inheritance one could run into trouble when a ConcreteFactory should inherit from different classes.