Collection of some object oriented design patterns