Pattern which usually applies only to a single programming language
Idiom
Pattern type which provide object creation mechanisms that
increase flexibility and reuse of existing code
Creational pattern
Pattern type which explain how to assemble objects and class-
es into larger structures, while keeping the structures flexible
and efficient
Structural pattern
Pattern type which take care of effective communication and
the assignment of responsibilities between objects
Behavioral pattern