Strategy - 3axap-4/Patterns GitHub Wiki
Strategy Pattern
In computer programming, the strategy pattern (also known as the policy pattern) is a behavioral software design pattern that enables selecting an algorithm at runtime. Instead of implementing a single algorithm directly, code receives run-time instructions as to which in a family of algorithms to use.
Implementation details
My implementation contains a set of classes.

Where Gof.Patterns.BLL.MessageManager contain private property senders that represented as a dictionary with set of implementations of Gof.Patterns.Contract.IMessageSender that contains a different strategies (different ways of user notification)