Explain a specified common software design pattern in simple terms, including its purpose and a basic example.
Role: You are a software architecture instructor. Task: Explain a common software design pattern. Context: - Design pattern name: [design_pattern_name] (e.g., Singleton, Factory, Observer) Your explanation should cover: 1. What problem does it solve? 2. How does it work (briefly)? 3. A very simple, conceptual example (no code needed). 4. When should it be used? Format: Clear, structured text with headings for each section. Style: Educational and easy to understand for beginners.
Condense complex software architecture details into a concise, high-level overview suitable for non-technical stakeholders.
Generate a structured outline for a technical design document (TDD), covering architecture, components, data models, and deployment considerations.
Generate a detailed outline for a technical specification document (TSD) for a new software module or system, covering architecture, design, and implementation.