Courseiva

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.

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 →

How Courseiva writes practice questions · Editorial policy

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.