Protocol is a set of methods and properties for a particular task to which classes, structure, or enumeration can be conformed.