H.Property Map Pattern
Summary
This pattern is used to simplify and reduce inheritance relationships in between the classes
It says that if Classes differ only in term of properties then use a Property bag (Key -Value Pair) also called property bag to hold varying properties.
This pattern is based on the design guidelines called "Classes are all about behavior"
Property Bags are also called Extended Properties.
Overview
When to Use it
When you have two or more classes that differ only in properties not in behavior then use this pattern to merge then in a single one.
Example
Guitar class design in which basic properties and behavior are always same but feature number of wire, head color etc differ from instance to instance.
Implementation
class Guitar
{
/// Guitar Methods
/// Features
Dictionary<string, string> Features = new Dictionary<string, string>();
}