-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAbstractFactory.cs
More file actions
21 lines (19 loc) · 825 Bytes
/
AbstractFactory.cs
File metadata and controls
21 lines (19 loc) · 825 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
namespace DesignPatterns.Creational.AbstractFactory;
/// <summary>
/// Abstract Factory Pattern
///
/// Intent: Provide an interface for creating families of related or dependent objects
/// without specifying their concrete classes.
///
/// When to use:
/// - When a system should be independent of how its products are created, composed, and represented
/// - When a family of related product objects is designed to be used together
///
/// Real-world analogy: A furniture shop offering matching Chair + Sofa + Table sets
/// in Modern, Victorian, or ArtDeco style.
/// </summary>
// TODO: Implement Abstract Factory
// 1. Abstract product interfaces (e.g., IChair, ISofa, ITable)
// 2. Concrete product families (Modern, Victorian, ArtDeco)
// 3. Abstract factory interface
// 4. Concrete factories (one per family)