200-901 Software Development and Design Practice Question
A developer is building a Python application that must handle configuration data in multiple formats (JSON, YAML, XML) and provide a consistent interface for reading and writing. The application may add new formats later. Which design pattern best supports this extensibility while keeping the client code decoupled from concrete implementations?
⚠ Common exam trap
The trap here is selecting a pattern based on superficial relevance, such as Adapter for format conversion, without considering which pattern actually decouples creation and supports adding new types.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Factory method pattern with an abstract parser interface
The factory method pattern is ideal because it encapsulates object creation, letting the client work with an abstract parser interface while subclasses or factory methods handle instantiation of concrete parsers for JSON, YAML, or XML. This decouples client code from specific formats and allows new formats to be added without changing existing code, satisfying extensibility.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Singleton pattern with a global configuration manager
Why it's wrong here
A Singleton ensures a single instance but does not address format extensibility or decoupling. Adding a new format would require modifying the global manager, violating the open-closed principle. It also introduces global state, making testing harder and reducing flexibility.
- ✗
Observer pattern to notify components when configuration changes
Why it's wrong here
The observer pattern is about one-to-many dependency and event notification, not about creating or selecting parsers. It does not address the need for a consistent interface across multiple formats or extensibility for new formats. Using it here would add unnecessary complexity without solving the core problem.
- ✗
Adapter pattern to convert each format to a common internal representation
Why it's wrong here
The adapter pattern is useful for making incompatible interfaces work together, but it does not inherently provide a creation mechanism for selecting the appropriate parser. The client would still need to choose the adapter, coupling it to concrete implementations. It is better suited for legacy integration than for format extensibility.
- ✓
Factory method pattern with an abstract parser interface
Why this is correct
The factory method pattern defines an interface for creating objects, allowing subclasses to decide which concrete parser to instantiate. The client code depends only on the abstract parser interface, so new formats can be added by creating new factory subclasses without modifying existing client code, directly supporting extensibility and decoupling.
Go deeper
Related to this question
About these practice questions
One of 975 original 200-901 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Cisco exam blueprint
This 200-901 practice question is part of Courseiva's free Cisco certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the 200-901 exam.