Is this an appropriate use of AbstractFactory pattern?
I am new to design patterns and have a question about the usage of the AbstractFactory Pattern. I want to allow the client program to specify the implementation details of my class. As an example, suppose I wanted to create a base class named Car and then allow client programs to implement various types of Cars. I want the design to be as flexible as possible so that for example it will be able to handle the creation of new types of cars in the future that may not exist right now. This is why I want to push the implementation details to the clients. Is this a good candidate for the AbstractFactory pattern? If not can you suggest a more appropriate pattern to use?

