Strategy is a behavioral design pattern that turns a set of behaviors into objects and makes them interchangeable inside original context object.
Visitor is a behavioral design pattern that allows adding new behaviors to existing class hierarchy without altering any existing code.
Factory Method is a creational design pattern that provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.