码迷,mamicode.com
首页 > Web开发 > 详细

php设计模式之命令链模式

时间:2015-05-08 22:12:50      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:php   命令链模式   

命令链模式:

   命令链模式以松散耦合主题为基础,发送消息、命令和请求,或通过一组处理程序发送任意内容。每个处理程序都会自行判断自己能否处理请求。如果可以,该请求被处理,进程停止。您可以为系统添加或移除处理程序,而不影响其他处理程序。



1.interface Validator  

2.{  

3.    /**  

4.     * The method could have any parameters.  

5.     * @param mixed  

6.     * @return boolean  

7.     */ 

8.    public function isValid($value);  

9.}  

10. 

11./**  

12. * ConcreteCommand.  

13. */ 

14.class MoreThanZeroValidator implements Validator  

15.{  

16.    public function isValid($value)  

17.     

18.        return $value > 0;  

19.     

20.}  

21. 

22./**  

23. * ConcreteCommand.  

24. */ 

25.class EvenValidator implements Validator  

26.{  

27.    public function isValid($value)  

28.     

29.        return $value % 2 == 0;  

30.     

31.}  

32. 

33./**  

34. * The Invoker. An implementation could store more than one  

35. * Validator if needed.  

36. */ 

37.class ArrayProcessor  

38.{  

39.    protected $_rule;  

40. 

41.    public function __construct (Validator $rule)  

42.     

43.        $this->_rule = $rule;  

44.     

45. 

46.    public function process(array $numbers)  

47.     

48.        foreach ($numbers as $n)  

49.            if ($this->_rule->IsValid($n))  

50.                echo $n, "\n";  

51.             

52.         

53.     

54.}  

55. 

56.// Client code  

57.$processor = new ArrayProcessor(new EvenValidator());  

58.$processor->process(array(1, 20, 18, 5, 0, 31, 42)); 

 

 

 

 

 


php设计模式之命令链模式

标签:php   命令链模式   

原文地址:http://blog.csdn.net/demon0313/article/details/45583983

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!