Chain of Responsibility Pattern will be our first Behavioral Design Pattern. Behavioral Design Patterns solves communication problem between different modules. They increase the flexibility in the communication process between Objects. Chain of responsibility pattern is a pretty simple pattern. It requires creation of a chain of processing objects that can process any provided task. Whenever a task needs to be done code does not relay on writing complex if..else… ladder to pass which processor needs to process which task. Task will be passed to a pipeline where each process resides and reads the inputted task one by one. Each processor has a fixed responsibility and as soon as the processor encounters any task that it can handle it will handle it otherwise it will pass the task to the next handler or processor.