Design: Factory Method Pattern Implementation
Design and implement the Factory Method pattern focusing on class structure and object creation flow. Out of scope are concrete product implementations beyond simple examples and integration with external systems.
Functional Requirements
FR1: Create a system that allows creating objects without specifying the exact class of object to create.
FR2: Support adding new types of products without changing existing code.
FR3: Clients should use a common interface to create objects.
FR4: Ensure that object creation logic is encapsulated in factory classes.
Non-Functional Requirements
NFR1: The system should be easy to extend with new product types.
NFR2: Object creation should be decoupled from client code.
NFR3: The design should follow SOLID principles, especially Open/Closed Principle.
NFR4: The system should be simple and maintainable for small to medium scale applications.