Sabre interview question

Define Object Oriented programming and explain some design patterns