-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathVisitorInterface.php
More file actions
40 lines (35 loc) · 1.13 KB
/
VisitorInterface.php
File metadata and controls
40 lines (35 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
namespace DesignPatterns\Behavioral\Visitor;
use DesignPatterns\Behavioral\Visitor\FormFields\CheckboxesField;
use DesignPatterns\Behavioral\Visitor\FormFields\IntegerField;
use DesignPatterns\Behavioral\Visitor\FormFields\EmailField;
/**
* Declares a visit operation for each form field. These form field are not required to extend @see FormField,
* visitor pattern doesn't require their class hierarchies to be related.
* The method's name and signature determines the class that sends the visit request.
*
* It corresponds to `Visitor` in the Strategy pattern.
*
* @author Vlad Riabchenko <contact@vria.eu>
*/
interface VisitorInterface
{
/**
* Visit @see EmailField object
*
* @param EmailField $emailField
*/
public function visitEmail(EmailField $emailField);
/**
* Visit @see IntegerField object
*
* @param IntegerField $integerField
*/
public function visitInteger(IntegerField $integerField);
/**
* Visit @see CheckboxesField object
*
* @param CheckboxesField $checkboxesField
*/
public function visitCheckboxes(CheckboxesField $checkboxesField);
}