Learn the Chain of Responsibility Design Pattern

+1

No comments posted yet

Comments

Slide 1

Chain-Of-Responsibility Design Pattern

Slide 2

Overview Objective Learn how to use the Chain Of Responsibility design pattern. Requirements Basics of Protected Methods Basics of Abstract Classes Estimated Time 6 minutes www.prodigyview.com

Slide 3

Follow Along With Code Example Download a copy of the example code at www.prodigyview.com/source. Install the system in an environment you feel comfortable testing in. Proceed to examples/data/Command.php

Slide 4

What is the Chain –Of-Responsibility? The Chain-of-responsibility is a design pattern that has command objects and processing objects. The command objects iterates through the processing objects and executes on the processing objects that can handle the request. Translated into English, a method in on object is called and it searches for other objects that can handle the methods request. In ProdigyView,, the chain-of-responsibility is a little different. An object methods are ran through until the correct method is found and then that method is executed.

Slide 5

Chain-of-Responsibility Visual Method turnLeft(); Method turnRight(); Method lookUp(); Method lookDown(); Method turnAround() Call Method lookUp() Output

Slide 6

Command in ProdigyView The Chain-of-responsibility is implemented in ProdigyView by extending the PVApplication or PVStaticApplication. Extend PVApplication Required abstract function

Slide 7

Command Interpreter So genius, you have a class that is full of protected methods and no way to access them, how are we going to call them? Well notice that our class extends PVApplication. PVApplication contains a public method called the commandInterpreter. The first argument will be the name of the method to execute. Any other arguments after that will be passed to the method. PVApplication is an abstract class and the only method that is required for you to implement is the defaultFunction(). This will execute if no command is found. Let’s run some commands.

Slide 8

Command Interpreter Example The method that will be called The arguements passed to the method

Slide 9

Command Interpreter Results The results from passing those commands should look like this.

Slide 10

The Not So Obvious PVApplication extends PVObject which extends PVPatterns. This means any object that extends PVApplication with has use of all the other design patterns as well the PVObject’s collections. An object that extends PVApplication can be used as a stand alone object or be integrated in ProdigyView’s application system.

Slide 11

Challenge! This is an optional challenge designed to help you better understand the design pattern. Create two classes that both have only protected methods and extends PVApplication or PVStaticApplication. Create at least 3 methods in each class. Start the chain by calling one of the object’s command interpreter, and have each method call the other objects command interpreter until the default function is reached.

Slide 12

Summary Have an object extend PVApplication Create methods inside that object. They can be protected or public if they are going to be called by the commandInterpreter(). Execute a method inside that object by using the commandInterpeter and having the first argument passed be the name of the method and any other variables behind it will be passed to the called method as arguments.

Slide 13

API Reference For a better understanding of the Collections and the Iterator, check out the api at the two links below. PVApplication www.prodigyview.com More Tutorials For more tutorials, please visit: http://www.prodigyview.com/tutorials

Summary: Learn how to implement chain of responsibility design pattern

Tags: design patterns how-to php prodigyview programming tutorial

URL: