课程咨询 :025-86971863

南京PHP培训 > 雇主企业 > 企业笔试题 > php设计模式之命令链模式
  • php设计模式之命令链模式

    发布:南京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设计模式之策略模式

最新开班日期  |  更多

PHP高级开发工程师就业班

PHP高级开发工程师就业班

开班日期:04-28

PHP高级开发工程师精品班

PHP高级开发工程师精品班

开班日期:04-28

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:04-28

PHP高级开发工程师定制班

PHP高级开发工程师定制班

开班日期:04-28

  • 地址:南京市秦淮区太平南路333号金陵御景园8楼达内
  • 课程培训电话:025-86971863     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2002-2018 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56